Diff of the two buildlogs: -- --- b1/build.log 2021-12-04 17:50:07.875885301 +0000 +++ b2/build.log 2021-12-04 17:58:53.185876384 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Jan 6 12:06:54 -12 2023 -I: pbuilder-time-stamp: 1673050014 +I: Current time: Sun Dec 5 07:50:09 +14 2021 +I: pbuilder-time-stamp: 1638640209 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/buster-reproducible-base.tgz] I: copying local configuration @@ -17,7 +17,7 @@ I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' gpgv: keyblock resource '/root/.gnupg/trustedkeys.kbx': General error -gpgv: Signature made Tue Jan 8 04:45:51 2019 -12 +gpgv: Signature made Wed Jan 9 06:45:51 2019 +14 gpgv: using RSA key B4A0AAFCA86C86055D067614AB53E503586877A6 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./ironic_11.1.0-6.dsc @@ -30,136 +30,170 @@ dpkg-source: info: applying remove-ircm-bios-test-file.patch I: using fakeroot in build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/2968133/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/858869/tmp/hooks/D01_modify_environment starting +debug: Running on ionos11-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' +Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' +Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash' +Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash' +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/858869/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/858869/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=16' - DISTRIBUTION='' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="0" [2]="3" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.0.3(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=15' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='04392c33f966434b8c7ecd52b97191b9' - 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='2968133' - PS1='# ' - PS2='> ' + INVOCATION_ID=6db6693318914f06a420f728d3434b41 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=858869 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/tmp.rfOXUL38RK/pbuilderrc_tZJy --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.rfOXUL38RK/b1 --logfile b1/build.log ironic_11.1.0-6.dsc' - SUDO_GID='110' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://85.184.249.68:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/tmp.rfOXUL38RK/pbuilderrc_qAn3 --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.rfOXUL38RK/b2 --logfile b2/build.log ironic_11.1.0-6.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://78.137.99.97:3128 I: uname -a - Linux ionos5-amd64 5.14.0-0.bpo.2-amd64 #1 SMP Debian 5.14.9-2~bpo11+1 (2021-10-10) x86_64 GNU/Linux + Linux i-capture-the-hostname 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 GNU/Linux I: ls -l /bin total 5116 - -rwxr-xr-x 1 root root 1168776 Apr 17 2019 bash - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bunzip2 - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bzcat - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2227 Jul 10 2019 bzdiff - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Jun 24 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3641 Jul 10 2019 bzgrep - -rwxr-xr-x 3 root root 38984 Jul 10 2019 bzip2 - -rwxr-xr-x 1 root root 14328 Jul 10 2019 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 10 2019 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 10 2019 bzmore - -rwxr-xr-x 1 root root 43744 Feb 28 2019 cat - -rwxr-xr-x 1 root root 64320 Feb 28 2019 chgrp - -rwxr-xr-x 1 root root 64288 Feb 28 2019 chmod - -rwxr-xr-x 1 root root 72512 Feb 28 2019 chown - -rwxr-xr-x 1 root root 146880 Feb 28 2019 cp - -rwxr-xr-x 1 root root 121464 Jan 17 2019 dash - -rwxr-xr-x 1 root root 109408 Feb 28 2019 date - -rwxr-xr-x 1 root root 76712 Feb 28 2019 dd - -rwxr-xr-x 1 root root 93744 Feb 28 2019 df - -rwxr-xr-x 1 root root 138856 Feb 28 2019 dir - -rwxr-xr-x 1 root root 84288 Jan 9 2019 dmesg - lrwxrwxrwx 1 root root 8 Sep 26 2018 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Sep 26 2018 domainname -> hostname - -rwxr-xr-x 1 root root 39520 Feb 28 2019 echo - -rwxr-xr-x 1 root root 28 Jan 7 2019 egrep - -rwxr-xr-x 1 root root 35424 Feb 28 2019 false - -rwxr-xr-x 1 root root 28 Jan 7 2019 fgrep - -rwxr-xr-x 1 root root 68880 Jan 9 2019 findmnt - -rwsr-xr-x 1 root root 34896 Apr 22 2020 fusermount - -rwxr-xr-x 1 root root 198976 Jan 7 2019 grep - -rwxr-xr-x 2 root root 2345 Jan 5 2019 gunzip - -rwxr-xr-x 1 root root 6375 Jan 5 2019 gzexe - -rwxr-xr-x 1 root root 98048 Jan 5 2019 gzip - -rwxr-xr-x 1 root root 26696 Sep 26 2018 hostname - -rwxr-xr-x 1 root root 68552 Feb 28 2019 ln - -rwxr-xr-x 1 root root 56760 Jul 26 2018 login - -rwxr-xr-x 1 root root 138856 Feb 28 2019 ls - -rwxr-xr-x 1 root root 108624 Jan 9 2019 lsblk - -rwxr-xr-x 1 root root 89088 Feb 28 2019 mkdir - -rwxr-xr-x 1 root root 68544 Feb 28 2019 mknod - -rwxr-xr-x 1 root root 43808 Feb 28 2019 mktemp - -rwxr-xr-x 1 root root 43008 Jan 9 2019 more - -rwsr-xr-x 1 root root 51280 Jan 9 2019 mount - -rwxr-xr-x 1 root root 14408 Jan 9 2019 mountpoint - -rwxr-xr-x 1 root root 138728 Feb 28 2019 mv - lrwxrwxrwx 1 root root 8 Sep 26 2018 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Feb 14 2019 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 39616 Feb 28 2019 pwd - lrwxrwxrwx 1 root root 4 Apr 17 2019 rbash -> bash - -rwxr-xr-x 1 root root 47776 Feb 28 2019 readlink - -rwxr-xr-x 1 root root 68416 Feb 28 2019 rm - -rwxr-xr-x 1 root root 47776 Feb 28 2019 rmdir - -rwxr-xr-x 1 root root 23312 Jan 21 2019 run-parts - -rwxr-xr-x 1 root root 122224 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Dec 10 16:21 sh -> dash - -rwxr-xr-x 1 root root 39552 Feb 28 2019 sleep - -rwxr-xr-x 1 root root 80672 Feb 28 2019 stty - -rwsr-xr-x 1 root root 63568 Jan 9 2019 su - -rwxr-xr-x 1 root root 35488 Feb 28 2019 sync - -rwxr-xr-x 1 root root 445560 Apr 23 2019 tar - -rwxr-xr-x 1 root root 14440 Jan 21 2019 tempfile - -rwxr-xr-x 1 root root 97152 Feb 28 2019 touch - -rwxr-xr-x 1 root root 35424 Feb 28 2019 true - -rwxr-xr-x 1 root root 14328 Apr 22 2020 ulockmgr_server - -rwsr-xr-x 1 root root 34888 Jan 9 2019 umount - -rwxr-xr-x 1 root root 39584 Feb 28 2019 uname - -rwxr-xr-x 2 root root 2345 Jan 5 2019 uncompress - -rwxr-xr-x 1 root root 138856 Feb 28 2019 vdir - -rwxr-xr-x 1 root root 34896 Jan 9 2019 wdctl - -rwxr-xr-x 1 root root 946 Jan 21 2019 which - lrwxrwxrwx 1 root root 8 Sep 26 2018 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1983 Jan 5 2019 zcat - -rwxr-xr-x 1 root root 1677 Jan 5 2019 zcmp - -rwxr-xr-x 1 root root 5879 Jan 5 2019 zdiff - -rwxr-xr-x 1 root root 29 Jan 5 2019 zegrep - -rwxr-xr-x 1 root root 29 Jan 5 2019 zfgrep - -rwxr-xr-x 1 root root 2080 Jan 5 2019 zforce - -rwxr-xr-x 1 root root 7584 Jan 5 2019 zgrep - -rwxr-xr-x 1 root root 2205 Jan 5 2019 zless - -rwxr-xr-x 1 root root 1841 Jan 5 2019 zmore - -rwxr-xr-x 1 root root 4552 Jan 5 2019 znew -I: user script /srv/workspace/pbuilder/2968133/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 1168776 Apr 18 2019 bash + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bunzip2 + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bzcat + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2227 Jul 11 2019 bzdiff + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Jun 25 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3641 Jul 11 2019 bzgrep + -rwxr-xr-x 3 root root 38984 Jul 11 2019 bzip2 + -rwxr-xr-x 1 root root 14328 Jul 11 2019 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 11 2019 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 11 2019 bzmore + -rwxr-xr-x 1 root root 43744 Mar 1 2019 cat + -rwxr-xr-x 1 root root 64320 Mar 1 2019 chgrp + -rwxr-xr-x 1 root root 64288 Mar 1 2019 chmod + -rwxr-xr-x 1 root root 72512 Mar 1 2019 chown + -rwxr-xr-x 1 root root 146880 Mar 1 2019 cp + -rwxr-xr-x 1 root root 121464 Jan 18 2019 dash + -rwxr-xr-x 1 root root 109408 Mar 1 2019 date + -rwxr-xr-x 1 root root 76712 Mar 1 2019 dd + -rwxr-xr-x 1 root root 93744 Mar 1 2019 df + -rwxr-xr-x 1 root root 138856 Mar 1 2019 dir + -rwxr-xr-x 1 root root 84288 Jan 10 2019 dmesg + lrwxrwxrwx 1 root root 8 Sep 27 2018 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Sep 27 2018 domainname -> hostname + -rwxr-xr-x 1 root root 39520 Mar 1 2019 echo + -rwxr-xr-x 1 root root 28 Jan 8 2019 egrep + -rwxr-xr-x 1 root root 35424 Mar 1 2019 false + -rwxr-xr-x 1 root root 28 Jan 8 2019 fgrep + -rwxr-xr-x 1 root root 68880 Jan 10 2019 findmnt + -rwsr-xr-x 1 root root 34896 Apr 23 2020 fusermount + -rwxr-xr-x 1 root root 198976 Jan 8 2019 grep + -rwxr-xr-x 2 root root 2345 Jan 6 2019 gunzip + -rwxr-xr-x 1 root root 6375 Jan 6 2019 gzexe + -rwxr-xr-x 1 root root 98048 Jan 6 2019 gzip + -rwxr-xr-x 1 root root 26696 Sep 27 2018 hostname + -rwxr-xr-x 1 root root 68552 Mar 1 2019 ln + -rwxr-xr-x 1 root root 56760 Jul 27 2018 login + -rwxr-xr-x 1 root root 138856 Mar 1 2019 ls + -rwxr-xr-x 1 root root 108624 Jan 10 2019 lsblk + -rwxr-xr-x 1 root root 89088 Mar 1 2019 mkdir + -rwxr-xr-x 1 root root 68544 Mar 1 2019 mknod + -rwxr-xr-x 1 root root 43808 Mar 1 2019 mktemp + -rwxr-xr-x 1 root root 43008 Jan 10 2019 more + -rwsr-xr-x 1 root root 51280 Jan 10 2019 mount + -rwxr-xr-x 1 root root 14408 Jan 10 2019 mountpoint + -rwxr-xr-x 1 root root 138728 Mar 1 2019 mv + lrwxrwxrwx 1 root root 8 Sep 27 2018 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Feb 15 2019 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 39616 Mar 1 2019 pwd + lrwxrwxrwx 1 root root 4 Apr 18 2019 rbash -> bash + -rwxr-xr-x 1 root root 47776 Mar 1 2019 readlink + -rwxr-xr-x 1 root root 68416 Mar 1 2019 rm + -rwxr-xr-x 1 root root 47776 Mar 1 2019 rmdir + -rwxr-xr-x 1 root root 23312 Jan 22 2019 run-parts + -rwxr-xr-x 1 root root 122224 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 Dec 5 07:50 sh -> bash + lrwxrwxrwx 1 root root 4 Nov 8 11:58 sh.distrib -> dash + -rwxr-xr-x 1 root root 39552 Mar 1 2019 sleep + -rwxr-xr-x 1 root root 80672 Mar 1 2019 stty + -rwsr-xr-x 1 root root 63568 Jan 10 2019 su + -rwxr-xr-x 1 root root 35488 Mar 1 2019 sync + -rwxr-xr-x 1 root root 445560 Apr 24 2019 tar + -rwxr-xr-x 1 root root 14440 Jan 22 2019 tempfile + -rwxr-xr-x 1 root root 97152 Mar 1 2019 touch + -rwxr-xr-x 1 root root 35424 Mar 1 2019 true + -rwxr-xr-x 1 root root 14328 Apr 23 2020 ulockmgr_server + -rwsr-xr-x 1 root root 34888 Jan 10 2019 umount + -rwxr-xr-x 1 root root 39584 Mar 1 2019 uname + -rwxr-xr-x 2 root root 2345 Jan 6 2019 uncompress + -rwxr-xr-x 1 root root 138856 Mar 1 2019 vdir + -rwxr-xr-x 1 root root 34896 Jan 10 2019 wdctl + -rwxr-xr-x 1 root root 946 Jan 22 2019 which + lrwxrwxrwx 1 root root 8 Sep 27 2018 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1983 Jan 6 2019 zcat + -rwxr-xr-x 1 root root 1677 Jan 6 2019 zcmp + -rwxr-xr-x 1 root root 5879 Jan 6 2019 zdiff + -rwxr-xr-x 1 root root 29 Jan 6 2019 zegrep + -rwxr-xr-x 1 root root 29 Jan 6 2019 zfgrep + -rwxr-xr-x 1 root root 2080 Jan 6 2019 zforce + -rwxr-xr-x 1 root root 7584 Jan 6 2019 zgrep + -rwxr-xr-x 1 root root 2205 Jan 6 2019 zless + -rwxr-xr-x 1 root root 1841 Jan 6 2019 zmore + -rwxr-xr-x 1 root root 4552 Jan 6 2019 znew +I: user script /srv/workspace/pbuilder/858869/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -707,7 +741,7 @@ Get: 345 http://deb.debian.org/debian buster/main amd64 python3-zake all 0.2.2-2 [15.8 kB] Get: 346 http://deb.debian.org/debian buster/main amd64 python3-tooz all 1.62.0-3 [48.7 kB] Get: 347 http://deb.debian.org/debian buster/main amd64 python3-wsme all 0.9.3-2 [66.3 kB] -Fetched 71.8 MB in 1s (48.4 MB/s) +Fetched 71.8 MB in 2s (31.0 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0:amd64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19195 files and directories currently installed.) @@ -2198,7 +2232,8 @@ fakeroot is already the newest version (1.23-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/ironic-11.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_11.1.0-6_source.changes +hostname: Name or service not known +I: Running cd /build/ironic-11.1.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../ironic_11.1.0-6_source.changes dpkg-buildpackage: info: source package ironic dpkg-buildpackage: info: source version 1:11.1.0-6 dpkg-buildpackage: info: source distribution unstable @@ -2317,32 +2352,59 @@ creating build/lib creating build/lib/ironic creating build/lib/ironic/tests -creating build/lib/ironic/tests/functional -copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional creating build/lib/ironic/tests/unit -creating build/lib/ironic/tests/unit/dhcp -copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib/ironic/tests/unit/dhcp -copying ironic/tests/unit/dhcp/test_factory.py -> build/lib/ironic/tests/unit/dhcp -copying ironic/tests/unit/dhcp/__init__.py -> build/lib/ironic/tests/unit/dhcp -creating build/lib/ironic/tests/unit/api -creating build/lib/ironic/tests/unit/api/controllers -creating build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_volume.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_types.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_root.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_port.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_node.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_expose.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_driver.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib/ironic/tests/unit/api/controllers/v1 -copying ironic/tests/unit/api/controllers/v1/__init__.py -> build/lib/ironic/tests/unit/api/controllers/v1 +creating build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_utils.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_swift.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_states.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_rpc_service.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_rpc.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_release_mappings.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_raid.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_pxe_utils.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_policy.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_neutron.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_network.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_keystone.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_images.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_image_service.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_hash_ring.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_glance_service.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_fsm.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_exception.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_driver_factory.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_context.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/test_cinder.py -> build/lib/ironic/tests/unit/common +copying ironic/tests/unit/common/__init__.py -> build/lib/ironic/tests/unit/common +creating build/lib/ironic/tests/unit/drivers +creating build/lib/ironic/tests/unit/drivers/modules +creating build/lib/ironic/tests/unit/drivers/modules/redfish +copying ironic/tests/unit/drivers/modules/redfish/test_utils.py -> build/lib/ironic/tests/unit/drivers/modules/redfish +copying ironic/tests/unit/drivers/modules/redfish/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/redfish +copying ironic/tests/unit/drivers/modules/redfish/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/redfish +copying ironic/tests/unit/drivers/modules/redfish/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/redfish +creating build/lib/ironic/api +creating build/lib/ironic/api/controllers +copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers +copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers +copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers +copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers +creating build/lib/ironic/tests/unit/drivers/modules/cimc +copying ironic/tests/unit/drivers/modules/cimc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/cimc +copying ironic/tests/unit/drivers/modules/cimc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/cimc +copying ironic/tests/unit/drivers/modules/cimc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/cimc +copying ironic/tests/unit/drivers/modules/cimc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/cimc +creating build/lib/ironic/api/middleware +copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware +copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware +copying ironic/api/middleware/auth_token.py -> build/lib/ironic/api/middleware +copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware +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/__init__.py -> build/lib/ironic/dhcp creating build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/utils.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_target.py -> build/lib/ironic/tests/unit/objects @@ -2359,13 +2421,9 @@ copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects creating build/lib/ironic/db -creating build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy -copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy -creating build/lib/ironic/tests/unit/drivers -creating 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 copying ironic/tests/unit/drivers/modules/test_snmp.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_pxe.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> build/lib/ironic/tests/unit/drivers/modules @@ -2380,198 +2438,29 @@ copying ironic/tests/unit/drivers/modules/test_agent_base_vendor.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/test_agent.py -> build/lib/ironic/tests/unit/drivers/modules copying ironic/tests/unit/drivers/modules/__init__.py -> build/lib/ironic/tests/unit/drivers/modules -creating build/lib/ironic/cmd -copying ironic/cmd/dbsync.py -> build/lib/ironic/cmd -copying ironic/cmd/conductor.py -> build/lib/ironic/cmd -copying ironic/cmd/api.py -> build/lib/ironic/cmd -copying ironic/cmd/__init__.py -> build/lib/ironic/cmd -copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit -copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit -creating build/lib/ironic/tests/unit/cmd -copying ironic/tests/unit/cmd/test_dbsync.py -> build/lib/ironic/tests/unit/cmd -copying ironic/tests/unit/cmd/test_conductor.py -> build/lib/ironic/tests/unit/cmd -copying ironic/tests/unit/cmd/__init__.py -> build/lib/ironic/tests/unit/cmd creating build/lib/ironic/drivers creating build/lib/ironic/drivers/modules -creating build/lib/ironic/drivers/modules/ucs -copying ironic/drivers/modules/ucs/power.py -> build/lib/ironic/drivers/modules/ucs -copying ironic/drivers/modules/ucs/management.py -> build/lib/ironic/drivers/modules/ucs -copying ironic/drivers/modules/ucs/helper.py -> build/lib/ironic/drivers/modules/ucs -copying ironic/drivers/modules/ucs/__init__.py -> build/lib/ironic/drivers/modules/ucs -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/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers -copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers -creating build/lib/ironic/tests/unit/conductor -copying ironic/tests/unit/conductor/test_utils.py -> build/lib/ironic/tests/unit/conductor -copying ironic/tests/unit/conductor/test_task_manager.py -> build/lib/ironic/tests/unit/conductor -copying ironic/tests/unit/conductor/test_rpcapi.py -> build/lib/ironic/tests/unit/conductor -copying ironic/tests/unit/conductor/test_notification_utils.py -> build/lib/ironic/tests/unit/conductor -copying ironic/tests/unit/conductor/test_manager.py -> build/lib/ironic/tests/unit/conductor -copying ironic/tests/unit/conductor/test_base_manager.py -> build/lib/ironic/tests/unit/conductor -copying ironic/tests/unit/conductor/mgr_utils.py -> build/lib/ironic/tests/unit/conductor -copying ironic/tests/unit/conductor/__init__.py -> build/lib/ironic/tests/unit/conductor -creating build/lib/ironic/api -copying ironic/api/wsgi.py -> build/lib/ironic/api -copying ironic/api/hooks.py -> build/lib/ironic/api -copying ironic/api/expose.py -> build/lib/ironic/api -copying ironic/api/config.py -> build/lib/ironic/api -copying ironic/api/app.py -> build/lib/ironic/api -copying ironic/api/__init__.py -> build/lib/ironic/api -creating build/lib/ironic/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/__init__.py -> build/lib/ironic/dhcp -creating build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ilo -copying ironic/drivers/modules/snmp.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/pxe.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/noop_mgmt.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/noop.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/iscsi_deploy.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/inspector.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/agent_base_vendor.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules -creating build/lib/ironic/drivers/modules/redfish -copying ironic/drivers/modules/redfish/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/management.py -> build/lib/ironic/drivers/modules/redfish -copying ironic/drivers/modules/redfish/__init__.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/service.py -> build/lib/ironic/common/glance_service -copying ironic/common/glance_service/base_image_service.py -> build/lib/ironic/common/glance_service -copying ironic/common/glance_service/__init__.py -> build/lib/ironic/common/glance_service creating build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/noop.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/external.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/cinder.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/__init__.py -> build/lib/ironic/drivers/modules/storage -creating build/lib/ironic/tests/unit/drivers/modules/ucs -copying ironic/tests/unit/drivers/modules/ucs/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ucs -copying ironic/tests/unit/drivers/modules/ucs/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ucs -copying ironic/tests/unit/drivers/modules/ucs/test_helper.py -> build/lib/ironic/tests/unit/drivers/modules/ucs -copying ironic/tests/unit/drivers/modules/ucs/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ucs -creating build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_job.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/drac -copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/drac -creating build/lib/ironic/drivers/modules/oneview -copying ironic/drivers/modules/oneview/power.py -> build/lib/ironic/drivers/modules/oneview -copying ironic/drivers/modules/oneview/management.py -> build/lib/ironic/drivers/modules/oneview -copying ironic/drivers/modules/oneview/inspect.py -> build/lib/ironic/drivers/modules/oneview -copying ironic/drivers/modules/oneview/deploy_utils.py -> build/lib/ironic/drivers/modules/oneview -copying ironic/drivers/modules/oneview/deploy.py -> build/lib/ironic/drivers/modules/oneview -copying ironic/drivers/modules/oneview/common.py -> build/lib/ironic/drivers/modules/oneview -copying ironic/drivers/modules/oneview/__init__.py -> build/lib/ironic/drivers/modules/oneview -creating build/lib/ironic/drivers/modules/xclarity -copying ironic/drivers/modules/xclarity/power.py -> build/lib/ironic/drivers/modules/xclarity -copying ironic/drivers/modules/xclarity/management.py -> build/lib/ironic/drivers/modules/xclarity -copying ironic/drivers/modules/xclarity/common.py -> build/lib/ironic/drivers/modules/xclarity -copying ironic/drivers/modules/xclarity/__init__.py -> build/lib/ironic/drivers/modules/xclarity -creating build/lib/ironic/api/middleware -copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware -copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware -copying ironic/api/middleware/auth_token.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/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -creating build/lib/ironic/api/controllers -copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers -copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers -copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers -copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers -creating build/lib/ironic/tests/unit/drivers/modules/ansible -copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible -copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible -copying ironic/tests/base.py -> build/lib/ironic/tests -copying ironic/tests/__init__.py -> build/lib/ironic/tests -creating build/lib/ironic/drivers/modules/cimc -copying ironic/drivers/modules/cimc/power.py -> build/lib/ironic/drivers/modules/cimc -copying ironic/drivers/modules/cimc/management.py -> build/lib/ironic/drivers/modules/cimc -copying ironic/drivers/modules/cimc/common.py -> build/lib/ironic/drivers/modules/cimc -copying ironic/drivers/modules/cimc/__init__.py -> build/lib/ironic/drivers/modules/cimc -creating build/lib/ironic/tests/unit/conf -copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf -copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf -creating build/lib/ironic/tests/unit/drivers/modules/oneview -copying ironic/tests/unit/drivers/modules/oneview/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/oneview -copying ironic/tests/unit/drivers/modules/oneview/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/oneview -copying ironic/tests/unit/drivers/modules/oneview/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/oneview -copying ironic/tests/unit/drivers/modules/oneview/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules/oneview -copying ironic/tests/unit/drivers/modules/oneview/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/oneview -copying ironic/tests/unit/drivers/modules/oneview/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/oneview -copying ironic/tests/unit/drivers/modules/oneview/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/oneview -creating build/lib/ironic/tests/unit/drivers/modules/cimc -copying ironic/tests/unit/drivers/modules/cimc/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/cimc -copying ironic/tests/unit/drivers/modules/cimc/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/cimc -copying ironic/tests/unit/drivers/modules/cimc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/cimc -copying ironic/tests/unit/drivers/modules/cimc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/cimc -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/power.py -> build/lib/ironic/drivers/modules/irmc -copying ironic/drivers/modules/irmc/management.py -> build/lib/ironic/drivers/modules/irmc -copying ironic/drivers/modules/irmc/inspect.py -> build/lib/ironic/drivers/modules/irmc -copying ironic/drivers/modules/irmc/common.py -> build/lib/ironic/drivers/modules/irmc -copying ironic/drivers/modules/irmc/bios.py -> build/lib/ironic/drivers/modules/irmc -copying ironic/drivers/modules/irmc/__init__.py -> build/lib/ironic/drivers/modules/irmc -creating build/lib/ironic/drivers/modules/network -copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network -copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network -copying ironic/drivers/modules/network/flat.py -> build/lib/ironic/drivers/modules/network -copying ironic/drivers/modules/network/common.py -> build/lib/ironic/drivers/modules/network -copying ironic/drivers/modules/network/__init__.py -> build/lib/ironic/drivers/modules/network -creating build/lib/ironic/tests/unit/drivers/modules/storage -copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage -copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage -copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage -creating build/lib/ironic/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/common/glance_service/v2 -copying ironic/common/glance_service/v2/image_service.py -> build/lib/ironic/common/glance_service/v2 -copying ironic/common/glance_service/v2/__init__.py -> build/lib/ironic/common/glance_service/v2 +creating build/lib/ironic/hacking +copying ironic/hacking/checks.py -> build/lib/ironic/hacking +copying ironic/hacking/__init__.py -> build/lib/ironic/hacking +creating build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api +copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api copying ironic/version.py -> build/lib/ironic copying ironic/__init__.py -> build/lib/ironic -creating 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_power.py -> build/lib/ironic/tests/unit/drivers/modules/redfish -copying ironic/tests/unit/drivers/modules/redfish/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/redfish -copying ironic/tests/unit/drivers/modules/redfish/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/redfish copying ironic/drivers/base.py -> build/lib/ironic/drivers copying ironic/drivers/xclarity.py -> build/lib/ironic/drivers copying ironic/drivers/utils.py -> build/lib/ironic/drivers @@ -2587,79 +2476,6 @@ copying ironic/drivers/drac.py -> build/lib/ironic/drivers copying ironic/drivers/cisco_ucs.py -> build/lib/ironic/drivers copying ironic/drivers/__init__.py -> build/lib/ironic/drivers -creating build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/vendor.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/power.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/management.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/inspect.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/firmware_processor.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/console.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/common.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/boot.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/bios.py -> build/lib/ironic/drivers/modules/ilo -copying ironic/drivers/modules/ilo/__init__.py -> build/lib/ironic/drivers/modules/ilo -creating build/lib/ironic/tests/unit/drivers/modules/network -copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network -copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network -copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib/ironic/tests/unit/drivers/modules/network -copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/network -copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network -creating build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_utils.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_swift.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_states.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_rpc_service.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_rpc.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_release_mappings.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_raid.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_pxe_utils.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_policy.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_neutron.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_network.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_keystone.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_images.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_image_service.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_hash_ring.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_glance_service.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_fsm.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_exception.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_driver_factory.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_context.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_cinder.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/__init__.py -> build/lib/ironic/tests/unit/common -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_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/irmc -copying ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/irmc -copying ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/irmc -copying ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/irmc -creating build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/volume_target.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/volume_connector.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/volume.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/versions.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/utils.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/types.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/state.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/ramdisk.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/portgroup.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/port.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/notification_utils.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/node.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/driver.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/collection.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/chassis.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/bios.py -> build/lib/ironic/api/controllers/v1 -copying ironic/api/controllers/v1/__init__.py -> build/lib/ironic/api/controllers/v1 -creating build/lib/ironic/conductor -copying ironic/conductor/utils.py -> build/lib/ironic/conductor -copying ironic/conductor/task_manager.py -> build/lib/ironic/conductor -copying ironic/conductor/rpcapi.py -> build/lib/ironic/conductor -copying ironic/conductor/notification_utils.py -> build/lib/ironic/conductor -copying ironic/conductor/manager.py -> build/lib/ironic/conductor -copying ironic/conductor/base_manager.py -> build/lib/ironic/conductor -copying ironic/conductor/__init__.py -> build/lib/ironic/conductor creating build/lib/ironic/conf copying ironic/conf/xclarity.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf @@ -2694,6 +2510,88 @@ copying ironic/conf/ansible.py -> build/lib/ironic/conf copying ironic/conf/agent.py -> build/lib/ironic/conf copying ironic/conf/__init__.py -> build/lib/ironic/conf +creating build/lib/ironic/drivers/modules/ucs +copying ironic/drivers/modules/ucs/power.py -> build/lib/ironic/drivers/modules/ucs +copying ironic/drivers/modules/ucs/management.py -> build/lib/ironic/drivers/modules/ucs +copying ironic/drivers/modules/ucs/helper.py -> build/lib/ironic/drivers/modules/ucs +copying ironic/drivers/modules/ucs/__init__.py -> build/lib/ironic/drivers/modules/ucs +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/drivers/modules/oneview +copying ironic/drivers/modules/oneview/power.py -> build/lib/ironic/drivers/modules/oneview +copying ironic/drivers/modules/oneview/management.py -> build/lib/ironic/drivers/modules/oneview +copying ironic/drivers/modules/oneview/inspect.py -> build/lib/ironic/drivers/modules/oneview +copying ironic/drivers/modules/oneview/deploy_utils.py -> build/lib/ironic/drivers/modules/oneview +copying ironic/drivers/modules/oneview/deploy.py -> build/lib/ironic/drivers/modules/oneview +copying ironic/drivers/modules/oneview/common.py -> build/lib/ironic/drivers/modules/oneview +copying ironic/drivers/modules/oneview/__init__.py -> build/lib/ironic/drivers/modules/oneview +creating build/lib/ironic/tests/unit/drivers/modules/ansible +copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible +copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible +creating build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/utils.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_volume_targets.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_volume_connectors.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_ports.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_portgroups.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_nodes.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_node_traits.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_node_tags.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_conductor.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_chassis.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_bios_settings.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/test_api.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/base.py -> build/lib/ironic/tests/unit/db +copying ironic/tests/unit/db/__init__.py -> build/lib/ironic/tests/unit/db +creating build/lib/ironic/drivers/modules/ilo +copying ironic/drivers/modules/ilo/vendor.py -> build/lib/ironic/drivers/modules/ilo +copying ironic/drivers/modules/ilo/power.py -> build/lib/ironic/drivers/modules/ilo +copying ironic/drivers/modules/ilo/management.py -> build/lib/ironic/drivers/modules/ilo +copying ironic/drivers/modules/ilo/inspect.py -> build/lib/ironic/drivers/modules/ilo +copying ironic/drivers/modules/ilo/firmware_processor.py -> build/lib/ironic/drivers/modules/ilo +copying ironic/drivers/modules/ilo/console.py -> build/lib/ironic/drivers/modules/ilo +copying ironic/drivers/modules/ilo/common.py -> build/lib/ironic/drivers/modules/ilo +copying ironic/drivers/modules/ilo/boot.py -> build/lib/ironic/drivers/modules/ilo +copying ironic/drivers/modules/ilo/bios.py -> build/lib/ironic/drivers/modules/ilo +copying ironic/drivers/modules/ilo/__init__.py -> build/lib/ironic/drivers/modules/ilo +creating build/lib/ironic/drivers/modules/redfish +copying ironic/drivers/modules/redfish/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/management.py -> build/lib/ironic/drivers/modules/redfish +copying ironic/drivers/modules/redfish/__init__.py -> build/lib/ironic/drivers/modules/redfish +creating build/lib/ironic/tests/unit/db/sqlalchemy +copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy +copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy +copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy +copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy +copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy +creating build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network +copying ironic/drivers/modules/snmp.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/pxe.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/noop_mgmt.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/noop.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/iscsi_deploy.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/inspector.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/agent_base_vendor.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules +creating build/lib/ironic/tests/unit/dhcp +copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib/ironic/tests/unit/dhcp +copying ironic/tests/unit/dhcp/test_factory.py -> build/lib/ironic/tests/unit/dhcp +copying ironic/tests/unit/dhcp/__init__.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/drivers/test_base.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/third_party_driver_mock_specs.py -> build/lib/ironic/tests/unit/drivers @@ -2710,6 +2608,183 @@ copying ironic/tests/unit/drivers/test_drac.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_cisco.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/__init__.py -> build/lib/ironic/tests/unit/drivers +creating build/lib/ironic/tests/functional +copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional +creating build/lib/ironic/objects +copying ironic/objects/volume_target.py -> build/lib/ironic/objects +copying ironic/objects/volume_connector.py -> build/lib/ironic/objects +copying ironic/objects/trait.py -> build/lib/ironic/objects +copying ironic/objects/portgroup.py -> build/lib/ironic/objects +copying ironic/objects/port.py -> build/lib/ironic/objects +copying ironic/objects/notification.py -> build/lib/ironic/objects +copying ironic/objects/node.py -> build/lib/ironic/objects +copying ironic/objects/indirection.py -> build/lib/ironic/objects +copying ironic/objects/fields.py -> build/lib/ironic/objects +copying ironic/objects/conductor.py -> build/lib/ironic/objects +copying ironic/objects/chassis.py -> build/lib/ironic/objects +copying ironic/objects/bios.py -> build/lib/ironic/objects +copying ironic/objects/base.py -> build/lib/ironic/objects +copying ironic/objects/__init__.py -> build/lib/ironic/objects +creating build/lib/ironic/tests/unit/drivers/modules/ilo +copying ironic/tests/unit/drivers/modules/ilo/test_vendor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo +copying ironic/tests/unit/drivers/modules/ilo/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ilo +copying ironic/tests/unit/drivers/modules/ilo/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ilo +copying ironic/tests/unit/drivers/modules/ilo/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/ilo +copying ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py -> build/lib/ironic/tests/unit/drivers/modules/ilo +copying ironic/tests/unit/drivers/modules/ilo/test_console.py -> build/lib/ironic/tests/unit/drivers/modules/ilo +copying ironic/tests/unit/drivers/modules/ilo/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/ilo +copying ironic/tests/unit/drivers/modules/ilo/test_boot.py -> build/lib/ironic/tests/unit/drivers/modules/ilo +copying ironic/tests/unit/drivers/modules/ilo/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/ilo +copying ironic/tests/unit/drivers/modules/ilo/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ilo +creating build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy +copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy +creating build/lib/ironic/common +creating build/lib/ironic/common/glance_service +creating build/lib/ironic/common/glance_service/v2 +copying ironic/common/glance_service/v2/image_service.py -> build/lib/ironic/common/glance_service/v2 +copying ironic/common/glance_service/v2/__init__.py -> build/lib/ironic/common/glance_service/v2 +copying ironic/tests/base.py -> build/lib/ironic/tests +copying ironic/tests/__init__.py -> build/lib/ironic/tests +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/power.py -> build/lib/ironic/drivers/modules/irmc +copying ironic/drivers/modules/irmc/management.py -> build/lib/ironic/drivers/modules/irmc +copying ironic/drivers/modules/irmc/inspect.py -> build/lib/ironic/drivers/modules/irmc +copying ironic/drivers/modules/irmc/common.py -> build/lib/ironic/drivers/modules/irmc +copying ironic/drivers/modules/irmc/bios.py -> build/lib/ironic/drivers/modules/irmc +copying ironic/drivers/modules/irmc/__init__.py -> build/lib/ironic/drivers/modules/irmc +creating build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage +creating build/lib/ironic/drivers/modules/drac +copying ironic/drivers/modules/drac/vendor_passthru.py -> build/lib/ironic/drivers/modules/drac +copying ironic/drivers/modules/drac/raid.py -> build/lib/ironic/drivers/modules/drac +copying ironic/drivers/modules/drac/power.py -> build/lib/ironic/drivers/modules/drac +copying ironic/drivers/modules/drac/management.py -> build/lib/ironic/drivers/modules/drac +copying ironic/drivers/modules/drac/job.py -> build/lib/ironic/drivers/modules/drac +copying ironic/drivers/modules/drac/inspect.py -> build/lib/ironic/drivers/modules/drac +copying ironic/drivers/modules/drac/common.py -> build/lib/ironic/drivers/modules/drac +copying ironic/drivers/modules/drac/bios.py -> build/lib/ironic/drivers/modules/drac +copying ironic/drivers/modules/drac/__init__.py -> build/lib/ironic/drivers/modules/drac +creating build/lib/ironic/tests/unit/drivers/modules/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_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/irmc +copying ironic/tests/unit/drivers/modules/irmc/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/irmc +copying ironic/tests/unit/drivers/modules/irmc/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/irmc +copying ironic/tests/unit/drivers/modules/irmc/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/irmc +creating build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/test_utils.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/test_task_manager.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/test_rpcapi.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/test_notification_utils.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/test_manager.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/test_base_manager.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/mgr_utils.py -> build/lib/ironic/tests/unit/conductor +copying ironic/tests/unit/conductor/__init__.py -> build/lib/ironic/tests/unit/conductor +creating build/lib/ironic/common/glance_service/v1 +copying ironic/common/glance_service/v1/image_service.py -> build/lib/ironic/common/glance_service/v1 +copying ironic/common/glance_service/v1/__init__.py -> build/lib/ironic/common/glance_service/v1 +creating build/lib/ironic/drivers/modules/cimc +copying ironic/drivers/modules/cimc/power.py -> build/lib/ironic/drivers/modules/cimc +copying ironic/drivers/modules/cimc/management.py -> build/lib/ironic/drivers/modules/cimc +copying ironic/drivers/modules/cimc/common.py -> build/lib/ironic/drivers/modules/cimc +copying ironic/drivers/modules/cimc/__init__.py -> build/lib/ironic/drivers/modules/cimc +creating build/lib/ironic/tests/unit/drivers/modules/ucs +copying ironic/tests/unit/drivers/modules/ucs/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/ucs +copying ironic/tests/unit/drivers/modules/ucs/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/ucs +copying ironic/tests/unit/drivers/modules/ucs/test_helper.py -> build/lib/ironic/tests/unit/drivers/modules/ucs +copying ironic/tests/unit/drivers/modules/ucs/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ucs +creating build/lib/ironic/tests/unit/api/controllers +copying ironic/tests/unit/api/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers +copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers +creating build/lib/ironic/cmd +copying ironic/cmd/dbsync.py -> build/lib/ironic/cmd +copying ironic/cmd/conductor.py -> build/lib/ironic/cmd +copying ironic/cmd/api.py -> build/lib/ironic/cmd +copying ironic/cmd/__init__.py -> build/lib/ironic/cmd +creating build/lib/ironic/tests/unit/conf +copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf +copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf +creating build/lib/ironic/drivers/modules/xclarity +copying ironic/drivers/modules/xclarity/power.py -> build/lib/ironic/drivers/modules/xclarity +copying ironic/drivers/modules/xclarity/management.py -> build/lib/ironic/drivers/modules/xclarity +copying ironic/drivers/modules/xclarity/common.py -> build/lib/ironic/drivers/modules/xclarity +copying ironic/drivers/modules/xclarity/__init__.py -> build/lib/ironic/drivers/modules/xclarity +copying ironic/api/wsgi.py -> build/lib/ironic/api +copying ironic/api/hooks.py -> build/lib/ironic/api +copying ironic/api/expose.py -> build/lib/ironic/api +copying ironic/api/config.py -> build/lib/ironic/api +copying ironic/api/app.py -> build/lib/ironic/api +copying ironic/api/__init__.py -> build/lib/ironic/api +creating build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/utils.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_raid.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_job.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/test_bios.py -> build/lib/ironic/tests/unit/drivers/modules/drac +copying ironic/tests/unit/drivers/modules/drac/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/drac +creating build/lib/ironic/tests/unit/drivers/modules/xclarity +copying ironic/tests/unit/drivers/modules/xclarity/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity +copying ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity +copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity +copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity +creating build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_volume_target.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_volume.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_types.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_root.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_port.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_node.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_expose.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_driver.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib/ironic/tests/unit/api/controllers/v1 +copying ironic/tests/unit/api/controllers/v1/__init__.py -> build/lib/ironic/tests/unit/api/controllers/v1 +creating build/lib/ironic/tests/unit/cmd +copying ironic/tests/unit/cmd/test_dbsync.py -> build/lib/ironic/tests/unit/cmd +copying ironic/tests/unit/cmd/test_conductor.py -> build/lib/ironic/tests/unit/cmd +copying ironic/tests/unit/cmd/__init__.py -> build/lib/ironic/tests/unit/cmd +copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit +copying ironic/common/glance_service/service_utils.py -> build/lib/ironic/common/glance_service +copying ironic/common/glance_service/service.py -> build/lib/ironic/common/glance_service +copying ironic/common/glance_service/base_image_service.py -> build/lib/ironic/common/glance_service +copying ironic/common/glance_service/__init__.py -> build/lib/ironic/common/glance_service +creating build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/volume_target.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/volume_connector.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/volume.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/versions.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/utils.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/types.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/state.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/ramdisk.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/portgroup.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/port.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/notification_utils.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/node.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/driver.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/collection.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/chassis.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/bios.py -> build/lib/ironic/api/controllers/v1 +copying ironic/api/controllers/v1/__init__.py -> build/lib/ironic/api/controllers/v1 copying ironic/common/wsgi_service.py -> build/lib/ironic/common copying ironic/common/utils.py -> build/lib/ironic/common copying ironic/common/swift.py -> build/lib/ironic/common @@ -2740,68 +2815,28 @@ copying ironic/common/boot_modes.py -> build/lib/ironic/common copying ironic/common/boot_devices.py -> build/lib/ironic/common copying ironic/common/__init__.py -> build/lib/ironic/common -creating build/lib/ironic/drivers/modules/drac -copying ironic/drivers/modules/drac/vendor_passthru.py -> build/lib/ironic/drivers/modules/drac -copying ironic/drivers/modules/drac/raid.py -> build/lib/ironic/drivers/modules/drac -copying ironic/drivers/modules/drac/power.py -> build/lib/ironic/drivers/modules/drac -copying ironic/drivers/modules/drac/management.py -> build/lib/ironic/drivers/modules/drac -copying ironic/drivers/modules/drac/job.py -> build/lib/ironic/drivers/modules/drac -copying ironic/drivers/modules/drac/inspect.py -> build/lib/ironic/drivers/modules/drac -copying ironic/drivers/modules/drac/common.py -> build/lib/ironic/drivers/modules/drac -copying ironic/drivers/modules/drac/bios.py -> build/lib/ironic/drivers/modules/drac -copying ironic/drivers/modules/drac/__init__.py -> build/lib/ironic/drivers/modules/drac -copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_root.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_ospmiddleware.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_middleware.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_hooks.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_healthcheck.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_audit.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api -copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api -creating build/lib/ironic/common/glance_service/v1 -copying ironic/common/glance_service/v1/image_service.py -> build/lib/ironic/common/glance_service/v1 -copying ironic/common/glance_service/v1/__init__.py -> build/lib/ironic/common/glance_service/v1 -copying ironic/db/migration.py -> build/lib/ironic/db -copying ironic/db/api.py -> build/lib/ironic/db -copying ironic/db/__init__.py -> build/lib/ironic/db -creating build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/utils.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_volume_targets.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_volume_connectors.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_ports.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_portgroups.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_nodes.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_node_traits.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_node_tags.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_conductor.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_chassis.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_bios_settings.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/test_api.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/base.py -> build/lib/ironic/tests/unit/db -copying ironic/tests/unit/db/__init__.py -> build/lib/ironic/tests/unit/db -creating build/lib/ironic/tests/unit/db/sqlalchemy -copying ironic/tests/unit/db/sqlalchemy/test_types.py -> build/lib/ironic/tests/unit/db/sqlalchemy -copying ironic/tests/unit/db/sqlalchemy/test_models.py -> build/lib/ironic/tests/unit/db/sqlalchemy -copying ironic/tests/unit/db/sqlalchemy/test_migrations.py -> build/lib/ironic/tests/unit/db/sqlalchemy -copying ironic/tests/unit/db/sqlalchemy/test_api.py -> build/lib/ironic/tests/unit/db/sqlalchemy -copying ironic/tests/unit/db/sqlalchemy/__init__.py -> build/lib/ironic/tests/unit/db/sqlalchemy -creating build/lib/ironic/objects -copying ironic/objects/volume_target.py -> build/lib/ironic/objects -copying ironic/objects/volume_connector.py -> build/lib/ironic/objects -copying ironic/objects/trait.py -> build/lib/ironic/objects -copying ironic/objects/portgroup.py -> build/lib/ironic/objects -copying ironic/objects/port.py -> build/lib/ironic/objects -copying ironic/objects/notification.py -> build/lib/ironic/objects -copying ironic/objects/node.py -> build/lib/ironic/objects -copying ironic/objects/indirection.py -> build/lib/ironic/objects -copying ironic/objects/fields.py -> build/lib/ironic/objects -copying ironic/objects/conductor.py -> build/lib/ironic/objects -copying ironic/objects/chassis.py -> build/lib/ironic/objects -copying ironic/objects/bios.py -> build/lib/ironic/objects -copying ironic/objects/base.py -> build/lib/ironic/objects -copying ironic/objects/__init__.py -> build/lib/ironic/objects +creating build/lib/ironic/tests/unit/drivers/modules/oneview +copying ironic/tests/unit/drivers/modules/oneview/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/oneview +copying ironic/tests/unit/drivers/modules/oneview/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/oneview +copying ironic/tests/unit/drivers/modules/oneview/test_inspect.py -> build/lib/ironic/tests/unit/drivers/modules/oneview +copying ironic/tests/unit/drivers/modules/oneview/test_deploy_utils.py -> build/lib/ironic/tests/unit/drivers/modules/oneview +copying ironic/tests/unit/drivers/modules/oneview/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/oneview +copying ironic/tests/unit/drivers/modules/oneview/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/oneview +copying ironic/tests/unit/drivers/modules/oneview/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/oneview +creating build/lib/ironic/drivers/modules/network +copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network +copying ironic/drivers/modules/network/neutron.py -> build/lib/ironic/drivers/modules/network +copying ironic/drivers/modules/network/flat.py -> build/lib/ironic/drivers/modules/network +copying ironic/drivers/modules/network/common.py -> build/lib/ironic/drivers/modules/network +copying ironic/drivers/modules/network/__init__.py -> build/lib/ironic/drivers/modules/network +creating build/lib/ironic/conductor +copying ironic/conductor/utils.py -> build/lib/ironic/conductor +copying ironic/conductor/task_manager.py -> build/lib/ironic/conductor +copying ironic/conductor/rpcapi.py -> build/lib/ironic/conductor +copying ironic/conductor/notification_utils.py -> build/lib/ironic/conductor +copying ironic/conductor/manager.py -> build/lib/ironic/conductor +copying ironic/conductor/base_manager.py -> build/lib/ironic/conductor +copying ironic/conductor/__init__.py -> build/lib/ironic/conductor running egg_info creating ironic.egg-info writing ironic.egg-info/PKG-INFO @@ -2818,60 +2853,7 @@ warning: no previously-included files matching '*.pyc' found anywhere in distribution reading manifest template 'MANIFEST.in' writing manifest file 'ironic.egg-info/SOURCES.txt' -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/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/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/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/c14cef6dfedf_populate_node_network_interface.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/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/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/api/app.wsgi -> build/lib/ironic/api -copying ironic/drivers/modules/agent_config.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/elilo_efi_pxe_config.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/master_grub_cfg.txt -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/pxe_config.template -> build/lib/ironic/drivers/modules -copying ironic/drivers/modules/pxe_grub_config.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers creating build/lib/ironic/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 @@ -2922,9 +2904,13 @@ 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 -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/agent_config.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/boot.ipxe -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/elilo_efi_pxe_config.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/ipxe_config.template -> build/lib/ironic/drivers/modules +copying ironic/drivers/modules/master_grub_cfg.txt -> 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/tests/unit/drivers/boot.ipxe -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/elilo_efi_pxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib/ironic/tests/unit/drivers @@ -2933,6 +2919,55 @@ copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib/ironic/tests/unit/drivers +copying ironic/db/sqlalchemy/alembic.ini -> build/lib/ironic/db/sqlalchemy +creating build/lib/ironic/db/sqlalchemy/alembic +copying ironic/db/sqlalchemy/alembic/README -> build/lib/ironic/db/sqlalchemy/alembic +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/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/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/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/c14cef6dfedf_populate_node_network_interface.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/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/f6fdb920c182_set_pxe_enabled_true.py -> build/lib/ironic/db/sqlalchemy/alembic/versions +copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions +copying ironic/tests/unit/drivers/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/api/app.wsgi -> build/lib/ironic/api copying ironic/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common running install_lib @@ -2942,6 +2977,63 @@ creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3 creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/base_manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/notification_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/rpcapi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/task_manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +copying build/lib/ironic/conductor/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +copying build/lib/ironic/cmd/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +copying build/lib/ironic/cmd/api.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +copying build/lib/ironic/cmd/conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +copying build/lib/ironic/cmd/dbsync.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/isolinux_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/grub_conf.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/boot_devices.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/boot_modes.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/cinder.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/config.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/context.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/dhcp_factory.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/driver_factory.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/exception.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/faults.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/fsm.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/hash_ring.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/i18n.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/images.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/keystone.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/network.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/policy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/profiler.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/pxe_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/raid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/release_mappings.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/rpc.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/rpc_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/states.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/swift.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +copying build/lib/ironic/common/wsgi_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service +copying build/lib/ironic/common/glance_service/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service +copying build/lib/ironic/common/glance_service/base_image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service +copying build/lib/ironic/common/glance_service/service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service +copying build/lib/ironic/common/glance_service/service_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1 +copying build/lib/ironic/common/glance_service/v1/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1 +copying build/lib/ironic/common/glance_service/v1/image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1 +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 +copying build/lib/ironic/common/glance_service/v2/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 +copying build/lib/ironic/common/glance_service/v2/image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects copying build/lib/ironic/objects/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects @@ -2991,101 +3083,8 @@ copying build/lib/ironic/conf/snmp.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/swift.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf copying build/lib/ironic/conf/xclarity.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/base_manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/notification_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/rpcapi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/task_manager.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor -copying build/lib/ironic/conductor/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor copying build/lib/ironic/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic copying build/lib/ironic/version.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/isolinux_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/grub_conf.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/boot_devices.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/boot_modes.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/cinder.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/config.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/context.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/dhcp_factory.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/driver_factory.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/exception.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/faults.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/fsm.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/hash_ring.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/i18n.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/images.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/keystone.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/network.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/policy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/profiler.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/pxe_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/raid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/release_mappings.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/rpc.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/rpc_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/states.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/swift.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -copying build/lib/ironic/common/wsgi_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1 -copying build/lib/ironic/common/glance_service/v1/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1 -copying build/lib/ironic/common/glance_service/v1/image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1 -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 -copying build/lib/ironic/common/glance_service/v2/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 -copying build/lib/ironic/common/glance_service/v2/image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2 -copying build/lib/ironic/common/glance_service/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service -copying build/lib/ironic/common/glance_service/base_image_service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service -copying build/lib/ironic/common/glance_service/service.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service -copying build/lib/ironic/common/glance_service/service_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp -copying build/lib/ironic/dhcp/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp -copying build/lib/ironic/dhcp/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp -copying build/lib/ironic/dhcp/neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp -copying build/lib/ironic/dhcp/none.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/app.wsgi -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/chassis.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/collection.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/driver.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/notification_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/port.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/portgroup.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/ramdisk.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/state.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/types.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/versions.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/volume.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/volume_connector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/v1/volume_target.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 -copying build/lib/ironic/api/controllers/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -copying build/lib/ironic/api/controllers/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -copying build/lib/ironic/api/controllers/link.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -copying build/lib/ironic/api/controllers/root.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware -copying build/lib/ironic/api/middleware/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware -copying build/lib/ironic/api/middleware/auth_token.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware -copying build/lib/ironic/api/middleware/json_ext.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware -copying build/lib/ironic/api/middleware/parsable_error.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware -copying build/lib/ironic/api/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/app.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/config.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/expose.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/hooks.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api -copying build/lib/ironic/api/wsgi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking copying build/lib/ironic/hacking/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking copying build/lib/ironic/hacking/checks.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking @@ -3114,6 +3113,22 @@ copying build/lib/ironic/drivers/modules/elilo_efi_pxe_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/boot.ipxe -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/agent_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +copying build/lib/ironic/drivers/modules/network/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +copying build/lib/ironic/drivers/modules/network/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +copying build/lib/ironic/drivers/modules/network/flat.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +copying build/lib/ironic/drivers/modules/network/neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +copying build/lib/ironic/drivers/modules/network/noop.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity +copying build/lib/ironic/drivers/modules/xclarity/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity +copying build/lib/ironic/drivers/modules/xclarity/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity +copying build/lib/ironic/drivers/modules/xclarity/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity +copying build/lib/ironic/drivers/modules/xclarity/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc +copying build/lib/ironic/drivers/modules/cimc/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc +copying build/lib/ironic/drivers/modules/cimc/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc +copying build/lib/ironic/drivers/modules/cimc/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc +copying build/lib/ironic/drivers/modules/cimc/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac @@ -3124,6 +3139,36 @@ copying build/lib/ironic/drivers/modules/drac/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/raid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac copying build/lib/ironic/drivers/modules/drac/vendor_passthru.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/raid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/irmc/boot.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc +copying build/lib/ironic/drivers/modules/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/agent.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/agent_base_vendor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/agent_client.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/boot_mode_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/console_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/deploy_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/fake.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/image_cache.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/inspector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/ipmitool.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/iscsi_deploy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/noop.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/noop_mgmt.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/pxe.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +copying build/lib/ironic/drivers/modules/snmp.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish +copying build/lib/ironic/drivers/modules/redfish/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish +copying build/lib/ironic/drivers/modules/redfish/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish +copying build/lib/ironic/drivers/modules/redfish/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish +copying build/lib/ironic/drivers/modules/redfish/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo @@ -3135,6 +3180,14 @@ copying build/lib/ironic/drivers/modules/ilo/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo copying build/lib/ironic/drivers/modules/ilo/vendor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview +copying build/lib/ironic/drivers/modules/oneview/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview +copying build/lib/ironic/drivers/modules/oneview/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview +copying build/lib/ironic/drivers/modules/oneview/deploy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview +copying build/lib/ironic/drivers/modules/oneview/deploy_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview +copying build/lib/ironic/drivers/modules/oneview/inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview +copying build/lib/ironic/drivers/modules/oneview/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview +copying build/lib/ironic/drivers/modules/oneview/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles @@ -3188,79 +3241,17 @@ copying build/lib/ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks copying build/lib/ironic/drivers/modules/ansible/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible copying build/lib/ironic/drivers/modules/ansible/deploy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -copying build/lib/ironic/drivers/modules/network/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -copying build/lib/ironic/drivers/modules/network/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -copying build/lib/ironic/drivers/modules/network/flat.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -copying build/lib/ironic/drivers/modules/network/neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -copying build/lib/ironic/drivers/modules/network/noop.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/raid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -copying build/lib/ironic/drivers/modules/irmc/boot.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc -copying build/lib/ironic/drivers/modules/cimc/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc -copying build/lib/ironic/drivers/modules/cimc/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc -copying build/lib/ironic/drivers/modules/cimc/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc -copying build/lib/ironic/drivers/modules/cimc/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity -copying build/lib/ironic/drivers/modules/xclarity/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity -copying build/lib/ironic/drivers/modules/xclarity/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity -copying build/lib/ironic/drivers/modules/xclarity/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity -copying build/lib/ironic/drivers/modules/xclarity/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview -copying build/lib/ironic/drivers/modules/oneview/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview -copying build/lib/ironic/drivers/modules/oneview/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview -copying build/lib/ironic/drivers/modules/oneview/deploy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview -copying build/lib/ironic/drivers/modules/oneview/deploy_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview -copying build/lib/ironic/drivers/modules/oneview/inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview -copying build/lib/ironic/drivers/modules/oneview/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview -copying build/lib/ironic/drivers/modules/oneview/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage -copying build/lib/ironic/drivers/modules/storage/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage -copying build/lib/ironic/drivers/modules/storage/cinder.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage -copying build/lib/ironic/drivers/modules/storage/external.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage -copying build/lib/ironic/drivers/modules/storage/noop.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish -copying build/lib/ironic/drivers/modules/redfish/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish -copying build/lib/ironic/drivers/modules/redfish/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish -copying build/lib/ironic/drivers/modules/redfish/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish -copying build/lib/ironic/drivers/modules/redfish/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish -copying build/lib/ironic/drivers/modules/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/agent.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/agent_base_vendor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/agent_client.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/boot_mode_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/console_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/deploy_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/fake.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/image_cache.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/inspector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/ipmitool.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/iscsi_deploy.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/noop.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/noop_mgmt.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/pxe.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules -copying build/lib/ironic/drivers/modules/snmp.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs copying build/lib/ironic/drivers/modules/ucs/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs copying build/lib/ironic/drivers/modules/ucs/helper.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs copying build/lib/ironic/drivers/modules/ucs/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs copying build/lib/ironic/drivers/modules/ucs/power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -copying build/lib/ironic/cmd/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -copying build/lib/ironic/cmd/api.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -copying build/lib/ironic/cmd/conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd -copying build/lib/ironic/cmd/dbsync.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage +copying build/lib/ironic/drivers/modules/storage/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage +copying build/lib/ironic/drivers/modules/storage/cinder.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage +copying build/lib/ironic/drivers/modules/storage/external.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage +copying build/lib/ironic/drivers/modules/storage/noop.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db -copying build/lib/ironic/db/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db -copying build/lib/ironic/db/api.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db -copying build/lib/ironic/db/migration.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions @@ -3312,10 +3303,81 @@ copying build/lib/ironic/db/sqlalchemy/api.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/migration.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/models.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy +copying build/lib/ironic/db/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db +copying build/lib/ironic/db/api.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db +copying build/lib/ironic/db/migration.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp +copying build/lib/ironic/dhcp/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp +copying build/lib/ironic/dhcp/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp +copying build/lib/ironic/dhcp/neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp +copying build/lib/ironic/dhcp/none.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/app.wsgi -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/app.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/config.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/expose.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/hooks.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +copying build/lib/ironic/api/wsgi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware +copying build/lib/ironic/api/middleware/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware +copying build/lib/ironic/api/middleware/auth_token.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware +copying build/lib/ironic/api/middleware/json_ext.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware +copying build/lib/ironic/api/middleware/parsable_error.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/chassis.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/collection.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/driver.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/notification_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/port.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/portgroup.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/ramdisk.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/state.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/types.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/versions.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/volume.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/volume_connector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/v1/volume_target.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 +copying build/lib/ironic/api/controllers/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers +copying build/lib/ironic/api/controllers/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers +copying build/lib/ironic/api/controllers/link.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers +copying build/lib/ironic/api/controllers/root.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests copying build/lib/ironic/tests/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests copying build/lib/ironic/tests/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional +copying build/lib/ironic/tests/functional/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit +copying build/lib/ironic/tests/unit/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit +copying build/lib/ironic/tests/unit/policy_fixture.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit +copying build/lib/ironic/tests/unit/raid_constants.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit +copying build/lib/ironic/tests/unit/stubs.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit +copying build/lib/ironic/tests/unit/test_base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd +copying build/lib/ironic/tests/unit/cmd/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd +copying build/lib/ironic/tests/unit/cmd/test_conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd +copying build/lib/ironic/tests/unit/cmd/test_dbsync.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf +copying build/lib/ironic/tests/unit/conf/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf +copying build/lib/ironic/tests/unit/conf/test_auth.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_manager.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +copying build/lib/ironic/tests/unit/conductor/test_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp +copying build/lib/ironic/tests/unit/dhcp/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp +copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp +copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db creating /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy @@ -3337,51 +3399,52 @@ copying build/lib/ironic/tests/unit/db/test_volume_connectors.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_cinder.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_context.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_exception.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_fsm.py -> /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_images.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_keystone.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_network.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_policy.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_raid.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_rpc.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_states.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_swift.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -copying build/lib/ironic/tests/unit/common/test_utils.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf -copying build/lib/ironic/tests/unit/conf/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf -copying build/lib/ironic/tests/unit/conf/test_auth.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_manager.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -copying build/lib/ironic/tests/unit/conductor/test_utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd -copying build/lib/ironic/tests/unit/cmd/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd -copying build/lib/ironic/tests/unit/cmd/test_conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd -copying build/lib/ironic/tests/unit/cmd/test_dbsync.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd -copying build/lib/ironic/tests/unit/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit -copying build/lib/ironic/tests/unit/policy_fixture.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit -copying build/lib/ironic/tests/unit/raid_constants.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit -copying build/lib/ironic/tests/unit/stubs.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit -copying build/lib/ironic/tests/unit/test_base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers +creating /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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_expose.py -> /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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_types.py -> /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers +copying build/lib/ironic/tests/unit/api/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +copying build/lib/ironic/tests/unit/api/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +copying build/lib/ironic/tests/unit/api/test_acl.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +copying build/lib/ironic/tests/unit/api/test_audit.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +copying build/lib/ironic/tests/unit/api/test_hooks.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +copying build/lib/ironic/tests/unit/api/test_middleware.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +copying build/lib/ironic/tests/unit/api/test_root.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +copying build/lib/ironic/tests/unit/api/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/test_bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/test_chassis.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/test_conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/test_fields.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/test_node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/test_notification.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/test_objects.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/test_port.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/test_portgroup.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/test_trait.py -> /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects +copying build/lib/ironic/tests/unit/objects/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects creating /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/pxe_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers @@ -3408,34 +3471,6 @@ copying build/lib/ironic/tests/unit/drivers/third_party_driver_mocks.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers copying build/lib/ironic/tests/unit/drivers/test_base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules -creating /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc -creating /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network -copying build/lib/ironic/tests/unit/drivers/modules/network/test_flat.py -> /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network -creating /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish -creating /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc -copying build/lib/ironic/tests/unit/drivers/modules/cimc/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc -copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc -copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc -copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview copying build/lib/ironic/tests/unit/drivers/modules/oneview/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview copying build/lib/ironic/tests/unit/drivers/modules/oneview/test_common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview @@ -3444,9 +3479,6 @@ copying build/lib/ironic/tests/unit/drivers/modules/oneview/test_inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview copying build/lib/ironic/tests/unit/drivers/modules/oneview/test_management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview copying build/lib/ironic/tests/unit/drivers/modules/oneview/test_power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview -creating /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible creating /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity @@ -3468,6 +3500,18 @@ copying build/lib/ironic/tests/unit/drivers/modules/ucs/test_helper.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs copying build/lib/ironic/tests/unit/drivers/modules/ucs/test_management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs copying build/lib/ironic/tests/unit/drivers/modules/ucs/test_power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs +creating /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc +creating /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage creating /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo @@ -3479,6 +3523,15 @@ copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_management.py -> /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo +creating /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network +copying build/lib/ironic/tests/unit/drivers/modules/network/test_flat.py -> /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network +creating /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible copying build/lib/ironic/tests/unit/drivers/modules/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_agent.py -> /build/ironic-11.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_vendor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules @@ -3493,58 +3546,89 @@ copying build/lib/ironic/tests/unit/drivers/modules/test_noop_mgmt.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules copying build/lib/ironic/tests/unit/drivers/modules/test_pxe.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/test_bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/test_chassis.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/test_conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/test_fields.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/test_node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/test_notification.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/test_objects.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/test_port.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/test_portgroup.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/test_trait.py -> /build/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -copying build/lib/ironic/tests/unit/objects/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -copying build/lib/ironic/tests/unit/api/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -copying build/lib/ironic/tests/unit/api/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -copying build/lib/ironic/tests/unit/api/test_acl.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -copying build/lib/ironic/tests/unit/api/test_audit.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -copying build/lib/ironic/tests/unit/api/test_healthcheck.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -copying build/lib/ironic/tests/unit/api/test_hooks.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -copying build/lib/ironic/tests/unit/api/test_middleware.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -copying build/lib/ironic/tests/unit/api/test_ospmiddleware.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -copying build/lib/ironic/tests/unit/api/test_root.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -copying build/lib/ironic/tests/unit/api/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers -copying build/lib/ironic/tests/unit/api/controllers/__init__.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers -creating /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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_expose.py -> /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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_types.py -> /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1 -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp -copying build/lib/ironic/tests/unit/dhcp/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp -copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp -copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp -creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional -copying build/lib/ironic/tests/functional/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc +copying build/lib/ironic/tests/unit/drivers/modules/cimc/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc +copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc +copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc +copying build/lib/ironic/tests/unit/drivers/modules/cimc/test_power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc +creating /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish +creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_cinder.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_context.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_exception.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_fsm.py -> /build/ironic-11.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/ironic-11.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/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_images.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_keystone.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_network.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_neutron.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_policy.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_raid.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_rpc.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_states.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_swift.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +copying build/lib/ironic/tests/unit/common/test_utils.py -> /build/ironic-11.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/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/base_manager.py to base_manager.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/manager.py to manager.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/notification_utils.py to notification_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/rpcapi.py to rpcapi.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/task_manager.py to task_manager.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/utils.py to utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/api.py to api.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/conductor.py to conductor.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/dbsync.py to dbsync.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/boot_devices.py to boot_devices.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/boot_modes.py to boot_modes.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/cinder.py to cinder.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/config.py to config.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/context.py to context.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/dhcp_factory.py to dhcp_factory.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/driver_factory.py to driver_factory.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/exception.py to exception.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/faults.py to faults.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/fsm.py to fsm.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/hash_ring.py to hash_ring.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/i18n.py to i18n.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/image_service.py to image_service.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/images.py to images.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/keystone.py to keystone.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/network.py to network.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/neutron.py to neutron.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/policy.py to policy.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/profiler.py to profiler.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/pxe_utils.py to pxe_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/raid.py to raid.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/release_mappings.py to release_mappings.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/rpc.py to rpc.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/rpc_service.py to rpc_service.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/service.py to service.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/states.py to states.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/swift.py to swift.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/utils.py to utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/wsgi_service.py to wsgi_service.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/base_image_service.py to base_image_service.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/service.py to service.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/service_utils.py to service_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1/image_service.py to image_service.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2/image_service.py to image_service.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/base.py to base.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/bios.py to bios.cpython-37.pyc @@ -3592,88 +3676,8 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/snmp.py to snmp.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/swift.py to swift.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conf/xclarity.py to xclarity.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/base_manager.py to base_manager.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/manager.py to manager.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/notification_utils.py to notification_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/rpcapi.py to rpcapi.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/task_manager.py to task_manager.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/conductor/utils.py to utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/version.py to version.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/boot_devices.py to boot_devices.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/boot_modes.py to boot_modes.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/cinder.py to cinder.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/config.py to config.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/context.py to context.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/dhcp_factory.py to dhcp_factory.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/driver_factory.py to driver_factory.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/exception.py to exception.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/faults.py to faults.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/fsm.py to fsm.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/hash_ring.py to hash_ring.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/i18n.py to i18n.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/image_service.py to image_service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/images.py to images.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/keystone.py to keystone.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/network.py to network.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/neutron.py to neutron.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/policy.py to policy.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/profiler.py to profiler.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/pxe_utils.py to pxe_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/raid.py to raid.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/release_mappings.py to release_mappings.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/rpc.py to rpc.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/rpc_service.py to rpc_service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/service.py to service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/states.py to states.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/swift.py to swift.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/utils.py to utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/wsgi_service.py to wsgi_service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v1/image_service.py to image_service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/v2/image_service.py to image_service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/base_image_service.py to base_image_service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/service.py to service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common/glance_service/service_utils.py to service_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/base.py to base.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/neutron.py to neutron.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/none.py to none.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/bios.py to bios.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/chassis.py to chassis.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/collection.py to collection.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/driver.py to driver.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/node.py to node.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/notification_utils.py to notification_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/port.py to port.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/portgroup.py to portgroup.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/ramdisk.py to ramdisk.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/state.py to state.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/types.py to types.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/utils.py to utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/versions.py to versions.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume.py to volume.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_connector.py to volume_connector.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_target.py to volume_target.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/base.py to base.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/link.py to link.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/root.py to root.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/auth_token.py to auth_token.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/json_ext.py to json_ext.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/parsable_error.py to parsable_error.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/app.py to app.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/config.py to config.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/expose.py to expose.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/hooks.py to hooks.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/wsgi.py to wsgi.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/hacking/checks.py to checks.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/__init__.py to __init__.cpython-37.pyc @@ -3691,6 +3695,19 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/utils.py to utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/xclarity.py to xclarity.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/base.py to base.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/common.py to common.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/flat.py to flat.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/neutron.py to neutron.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/noop.py to noop.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/common.py to common.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/management.py to management.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/power.py to power.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/common.py to common.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/management.py to management.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/power.py to power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/bios.py to bios.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/common.py to common.cpython-37.pyc @@ -3700,27 +3717,6 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/power.py to power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/raid.py to raid.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/vendor_passthru.py to vendor_passthru.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/bios.py to bios.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/boot.py to boot.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/common.py to common.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/console.py to console.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/firmware_processor.py to firmware_processor.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/inspect.py to inspect.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/management.py to management.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/power.py to power.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/vendor.py to vendor.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/stream_url.py to stream_url.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/root_hints.py to root_hints.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py to facts_wwn.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py to ironic_log.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/deploy.py to deploy.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/common.py to common.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/flat.py to flat.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/neutron.py to neutron.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/network/noop.py to noop.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/bios.py to bios.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/common.py to common.cpython-37.pyc @@ -3729,29 +3725,6 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/power.py to power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/raid.py to raid.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/irmc/boot.py to boot.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/common.py to common.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/management.py to management.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/cimc/power.py to power.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/common.py to common.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/management.py to management.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/xclarity/power.py to power.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/common.py to common.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/deploy.py to deploy.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/deploy_utils.py to deploy_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/inspect.py to inspect.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/management.py to management.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/power.py to power.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/cinder.py to cinder.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/external.py to external.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/noop.py to noop.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/management.py to management.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/power.py to power.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/utils.py to utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/agent.py to agent.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/agent_base_vendor.py to agent_base_vendor.cpython-37.pyc @@ -3768,17 +3741,41 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/noop_mgmt.py to noop_mgmt.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/pxe.py to pxe.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/snmp.py to snmp.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/management.py to management.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/power.py to power.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/redfish/utils.py to utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/bios.py to bios.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/boot.py to boot.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/common.py to common.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/console.py to console.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/firmware_processor.py to firmware_processor.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/inspect.py to inspect.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/management.py to management.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/power.py to power.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo/vendor.py to vendor.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/common.py to common.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/deploy.py to deploy.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/deploy_utils.py to deploy_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/inspect.py to inspect.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/management.py to management.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/oneview/power.py to power.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/stream_url.py to stream_url.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/root_hints.py to root_hints.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py to facts_wwn.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py to ironic_log.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/deploy.py to deploy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/helper.py to helper.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/management.py to management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ucs/power.py to power.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/api.py to api.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/conductor.py to conductor.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd/dbsync.py to dbsync.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/api.py to api.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/migration.py to migration.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/cinder.py to cinder.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/external.py to external.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/storage/noop.py to noop.cpython-37.pyc byte-compiling /build/ironic-11.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-37.pyc byte-compiling /build/ironic-11.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-37.pyc byte-compiling /build/ironic-11.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-37.pyc @@ -3824,8 +3821,68 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/api.py to api.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/migration.py to migration.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/models.py to models.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/api.py to api.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/migration.py to migration.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/base.py to base.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/neutron.py to neutron.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/dhcp/none.py to none.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/app.py to app.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/config.py to config.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/expose.py to expose.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/hooks.py to hooks.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/wsgi.py to wsgi.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/auth_token.py to auth_token.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/json_ext.py to json_ext.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/middleware/parsable_error.py to parsable_error.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/bios.py to bios.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/chassis.py to chassis.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/collection.py to collection.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/driver.py to driver.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/node.py to node.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/notification_utils.py to notification_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/port.py to port.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/portgroup.py to portgroup.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/ramdisk.py to ramdisk.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/state.py to state.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/types.py to types.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/utils.py to utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/versions.py to versions.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume.py to volume.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_connector.py to volume_connector.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_target.py to volume_target.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/base.py to base.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/link.py to link.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/root.py to root.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/base.py to base.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/policy_fixture.py to policy_fixture.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/raid_constants.py to raid_constants.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/stubs.py to stubs.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/test_base.py to test_base.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_conductor.py to test_conductor.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_dbsync.py to test_dbsync.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf/test_auth.py to test_auth.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/mgr_utils.py to mgr_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_base_manager.py to test_base_manager.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_manager.py to test_manager.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_notification_utils.py to test_notification_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_rpcapi.py to test_rpcapi.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_task_manager.py to test_task_manager.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_utils.py to test_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_factory.py to test_factory.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_neutron.py to test_neutron.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_api.py to test_api.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_migrations.py to test_migrations.cpython-37.pyc @@ -3845,47 +3902,48 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_volume_connectors.py to test_volume_connectors.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_volume_targets.py to test_volume_targets.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/utils.py to utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_cinder.py to test_cinder.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_context.py to test_context.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_driver_factory.py to test_driver_factory.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_exception.py to test_exception.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_fsm.py to test_fsm.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_glance_service.py to test_glance_service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_hash_ring.py to test_hash_ring.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_image_service.py to test_image_service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_images.py to test_images.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_keystone.py to test_keystone.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_network.py to test_network.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_neutron.py to test_neutron.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_policy.py to test_policy.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_pxe_utils.py to test_pxe_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_raid.py to test_raid.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_release_mappings.py to test_release_mappings.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc.py to test_rpc.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc_service.py to test_rpc_service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_states.py to test_states.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_swift.py to test_swift.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_utils.py to test_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_wsgi_service.py to test_wsgi_service.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conf/test_auth.py to test_auth.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/mgr_utils.py to mgr_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_base_manager.py to test_base_manager.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_manager.py to test_manager.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_notification_utils.py to test_notification_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_rpcapi.py to test_rpcapi.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_task_manager.py to test_task_manager.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_utils.py to test_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_conductor.py to test_conductor.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd/test_dbsync.py to test_dbsync.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/policy_fixture.py to policy_fixture.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/raid_constants.py to raid_constants.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/stubs.py to stubs.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/test_base.py to test_base.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_chassis.py to test_chassis.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_driver.py to test_driver.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_expose.py to test_expose.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_node.py to test_node.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_notification_utils.py to test_notification_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_port.py to test_port.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_portgroup.py to test_portgroup.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_ramdisk.py to test_ramdisk.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_root.py to test_root.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_types.py to test_types.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_utils.py to test_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_versions.py to test_versions.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume.py to test_volume.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_connector.py to test_volume_connector.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_target.py to test_volume_target.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/test_base.py to test_base.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/base.py to base.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_acl.py to test_acl.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_audit.py to test_audit.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_healthcheck.py to test_healthcheck.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_hooks.py to test_hooks.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_middleware.py to test_middleware.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_ospmiddleware.py to test_ospmiddleware.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_root.py to test_root.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/utils.py to utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_bios.py to test_bios.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_chassis.py to test_chassis.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_conductor.py to test_conductor.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_fields.py to test_fields.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_node.py to test_node.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_notification.py to test_notification.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_objects.py to test_objects.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_port.py to test_port.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_portgroup.py to test_portgroup.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_trait.py to test_trait.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_connector.py to test_volume_connector.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_target.py to test_volume_target.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/utils.py to utils.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_cisco.py to test_cisco.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_drac.py to test_drac.cpython-37.pyc @@ -3902,27 +3960,6 @@ byte-compiling /build/ironic-11.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-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/third_party_driver_mocks.py to third_party_driver_mocks.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/test_base.py to test_base.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_common.py to test_common.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_inspect.py to test_inspect.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py to test_periodic_task.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_raid.py to test_raid.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_common.py to test_common.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_flat.py to test_flat.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_neutron.py to test_neutron.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_noop.py to test_noop.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_management.py to test_management.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_power.py to test_power.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_utils.py to test_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_cinder.py to test_cinder.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_external.py to test_external.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_common.py to test_common.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_management.py to test_management.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_power.py to test_power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview/test_common.py to test_common.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview/test_deploy.py to test_deploy.cpython-37.pyc @@ -3930,8 +3967,6 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview/test_inspect.py to test_inspect.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview/test_management.py to test_management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview/test_power.py to test_power.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/test_deploy.py to test_deploy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_common.py to test_common.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/test_management.py to test_management.cpython-37.pyc @@ -3950,6 +3985,14 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/test_helper.py to test_helper.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/test_management.py to test_management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ucs/test_power.py to test_power.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_common.py to test_common.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_inspect.py to test_inspect.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_periodic_task.py to test_periodic_task.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_raid.py to test_raid.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_cinder.py to test_cinder.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/storage/test_external.py to test_external.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_bios.py to test_bios.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_boot.py to test_boot.cpython-37.pyc @@ -3960,6 +4003,13 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_management.py to test_management.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_power.py to test_power.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_vendor.py to test_vendor.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_common.py to test_common.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_flat.py to test_flat.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_neutron.py to test_neutron.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_noop.py to test_noop.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ansible/test_deploy.py to test_deploy.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/__init__.py to __init__.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent.py to test_agent.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_agent_base_vendor.py to test_agent_base_vendor.cpython-37.pyc @@ -3974,52 +4024,37 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_noop_mgmt.py to test_noop_mgmt.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_pxe.py to test_pxe.cpython-37.pyc byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_snmp.py to test_snmp.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_bios.py to test_bios.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_chassis.py to test_chassis.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_conductor.py to test_conductor.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_fields.py to test_fields.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_node.py to test_node.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_notification.py to test_notification.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_objects.py to test_objects.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_port.py to test_port.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_portgroup.py to test_portgroup.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_trait.py to test_trait.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_connector.py to test_volume_connector.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_volume_target.py to test_volume_target.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/utils.py to utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/base.py to base.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_acl.py to test_acl.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_audit.py to test_audit.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_healthcheck.py to test_healthcheck.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_hooks.py to test_hooks.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_middleware.py to test_middleware.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_ospmiddleware.py to test_ospmiddleware.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/test_root.py to test_root.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/utils.py to utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/test_base.py to test_base.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_chassis.py to test_chassis.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_driver.py to test_driver.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_expose.py to test_expose.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_node.py to test_node.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_notification_utils.py to test_notification_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_port.py to test_port.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_portgroup.py to test_portgroup.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_ramdisk.py to test_ramdisk.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_root.py to test_root.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_types.py to test_types.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_utils.py to test_utils.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_versions.py to test_versions.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume.py to test_volume.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_connector.py to test_volume_connector.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers/v1/test_volume_target.py to test_volume_target.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_factory.py to test_factory.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_neutron.py to test_neutron.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_common.py to test_common.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_management.py to test_management.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/cimc/test_power.py to test_power.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_management.py to test_management.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_power.py to test_power.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/redfish/test_utils.py to test_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_cinder.py to test_cinder.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_context.py to test_context.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_driver_factory.py to test_driver_factory.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_exception.py to test_exception.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_fsm.py to test_fsm.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_glance_service.py to test_glance_service.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_hash_ring.py to test_hash_ring.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_image_service.py to test_image_service.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_images.py to test_images.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_keystone.py to test_keystone.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_network.py to test_network.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_neutron.py to test_neutron.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_policy.py to test_policy.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_pxe_utils.py to test_pxe_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_raid.py to test_raid.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_release_mappings.py to test_release_mappings.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc.py to test_rpc.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc_service.py to test_rpc_service.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_states.py to test_states.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_swift.py to test_swift.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_utils.py to test_utils.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_wsgi_service.py to test_wsgi_service.cpython-37.pyc running install_data creating /build/ironic-11.1.0/debian/tmp/usr/etc creating /build/ironic-11.1.0/debian/tmp/usr/etc/ironic @@ -4047,193 +4082,189 @@ + PYTHONS=disabled + PYTHON3S=disabled + TEST_PARALLEL_OPT=--parallel ++ for i in $@ ++ case "${1}" in + PKGOS_USE_PY2=no + shift -+ [ no = yes ] -+ [ yes = yes ] -+ py3versions -vr ++ for i in $@ ++ case "${1}" in ++ '[' no = yes ']' ++ '[' yes = yes ']' +++ py3versions -vr + PYTHON3S=3.7 -+ [ yes = no ] -+ [ disabled = disabled ] ++ '[' yes = no ']' ++ for pyvers in ${PYTHONS} ${PYTHON3S} ++ '[' disabled = disabled ']' + continue -+ [ 3.7 = disabled ] -+ echo 3.7 -+ cut -d. -f1 ++ for pyvers in ${PYTHONS} ${PYTHON3S} ++ '[' 3.7 = disabled ']' +++ echo 3.7 +++ cut -d. -f1 + PYMAJOR=3 -+ echo ===> Testing with python (python3) ++ echo '===> Testing with python (python3)' ===> Testing with python (python3) -+ [ 3 = 3 ] -+ pwd -+ [ -d /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages ] -+ [ -z ] -+ pwd ++ '[' 3 = 3 ']' +++ pwd ++ '[' -d /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages ']' ++ '[' -z '' ']' +++ pwd + export PYTHONPATH=/build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages -+ [ -e .stestr.conf ] ++ PYTHONPATH=/build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages ++ '[' -e .stestr.conf ']' + rm -rf .stestr -+ PYTHON=python3.7 python3-stestr run --subunit ironic\.tests\.unit\.(?!(.*api\.controllers\.v1\.test_chassis\.TestPost\.test_create_chassis_unicode_description.*)) ++ PYTHON=python3.7 ++ python3-stestr run --subunit 'ironic\.tests\.unit\.(?!(.*api\.controllers\.v1\.test_chassis\.TestPost\.test_create_chassis_unicode_description.*))' + subunit2pyunit -2023-01-06 12:08:58.665 2982981 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:58.804 2982957 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:58.879 2982959 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:58.903 2982961 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.031 2982965 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.071 2982963 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.087 2982973 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.114 2982975 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.124 2982969 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.135 2982977 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.136 2982985 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.141 2982987 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.229 2982971 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.245 2982979 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.389 2982983 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:08:59.454 2982967 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2023-01-06 12:09:22.529 2982981 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:22.793 2982959 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:22.830 2982957 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:22.965 2982981 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:22.996 2982961 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.111 2982985 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.138 2982965 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.147 2982959 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.164 2982981 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.205 2982957 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.233 2982981 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:23.238 2982977 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.259 2982981 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:23.280 2982969 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.288 2982975 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.331 2982959 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.346 2982973 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.354 2982961 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.387 2982959 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:23.389 2982957 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.406 2982959 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:23.406 2982963 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.440 2982957 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:23.445 2982985 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.455 2982957 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:23.461 2982965 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.502 2982961 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.504 2982987 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.534 2982977 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.546 2982961 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:23.558 2982969 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.561 2982961 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:23.565 2982975 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.586 2982985 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.604 2982965 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.619 2982973 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.650 2982985 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:23.657 2982983 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.670 2982965 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:23.671 2982985 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:23.686 2982971 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.734 2982963 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.745 2982965 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:23.756 2982977 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.784 2982969 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.789 2982975 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.806 2982977 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:23.837 2982977 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:23.842 2982979 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:23.855 2982969 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:23.861 2982973 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.862 2982975 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:23.878 2982969 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:23.872 2982987 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:23.893 2982975 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:23.982 2982973 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:23.982 2982963 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:23.992 2982973 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:24.041 2982963 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:24.074 2982963 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:24.119 2982987 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:24.121 2982983 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:24.138 2982971 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:24.240 2982987 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:24.263 2982987 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:24.279 2982979 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:24.402 2982983 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:24.420 2982971 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:24.446 2982983 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:24.463 2982983 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:24.465 2982971 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:24.484 2982971 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:24.526 2982979 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:24.738 2982967 INFO keyring.backend [-] Loading KWallet -2023-01-06 12:09:24.744 2982979 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:24.791 2982979 INFO keyring.backend [-] Loading macOS -2023-01-06 12:09:25.008 2982967 INFO keyring.backend [-] Loading SecretService -2023-01-06 12:09:25.345 2982967 INFO keyring.backend [-] Loading Windows -2023-01-06 12:09:25.420 2982967 INFO keyring.backend [-] Loading chainer -2023-01-06 12:09:25.450 2982967 INFO keyring.backend [-] Loading macOS -ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init -ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init ... ok -2023-01-06 12:09:55.739 2982957 INFO alembic.runtime.migration [req-e288859d-3bec-4944-9826-7c9a68101726 - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:55.740 2982957 INFO alembic.runtime.migration [req-e288859d-3bec-4944-9826-7c9a68101726 - - - - -] Will assume non-transactional DDL. -2023-01-06 12:09:55.766 2982959 INFO alembic.runtime.migration [req-e107f11d-1c01-46f4-bf6a-2b193f752d75 - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:55.767 2982959 INFO alembic.runtime.migration [req-e107f11d-1c01-46f4-bf6a-2b193f752d75 - - - - -] Will assume non-transactional DDL. -2023-01-06 12:09:55.802 2982981 INFO alembic.runtime.migration [req-7136c0c1-2b11-403a-b27b-7443231b06cb - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:55.803 2982981 INFO alembic.runtime.migration [req-7136c0c1-2b11-403a-b27b-7443231b06cb - - - - -] Will assume non-transactional DDL. -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. +2021-12-05 07:52:32.244 875100 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.291 875101 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.410 875099 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.467 875102 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.652 875104 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.701 875103 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.779 875107 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.792 875109 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.800 875106 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.804 875105 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.891 875112 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:32.937 875113 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:33.062 875108 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:33.119 875111 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:52:33.197 875110 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-12-05 07:53:05.035 875100 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:05.203 875101 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:05.266 875099 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:05.418 875102 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:05.505 875100 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:05.616 875101 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:05.769 875099 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:05.844 875100 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:05.886 875104 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:05.924 875100 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:05.926 875102 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:05.950 875101 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:05.957 875100 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:05.994 875103 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:06.089 875107 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:06.123 875099 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:06.127 875106 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:06.131 875101 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.150 875101 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:06.164 875109 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:06.185 875099 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.199 875099 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:06.220 875102 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:06.272 875102 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.286 875102 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:06.327 875104 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:06.363 875105 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:06.367 875103 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:06.378 875112 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:06.380 875107 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:06.414 875106 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:06.443 875113 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:06.451 875109 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:06.484 875104 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:06.519 875103 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:06.525 875104 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.530 875107 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:06.537 875104 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:06.551 875108 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:06.552 875106 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:06.562 875103 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.576 875107 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.577 875109 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:06.576 875103 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:06.584 875111 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:06.589 875107 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:06.599 875106 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.609 875106 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:06.622 875109 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.627 875105 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:06.634 875112 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:06.635 875109 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:06.804 875113 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:06.841 875110 INFO keyring.backend [-] Loading KWallet +2021-12-05 07:53:06.867 875105 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:06.871 875112 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:06.883 875108 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:06.893 875105 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.906 875113 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:06.906 875112 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.911 875105 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:06.916 875111 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:06.919 875112 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:06.963 875113 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:06.986 875113 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:07.026 875108 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:07.068 875111 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:07.072 875110 INFO keyring.backend [-] Loading SecretService +2021-12-05 07:53:07.075 875108 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:07.082 875108 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:07.094 875111 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:07.105 875111 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:07.152 875110 INFO keyring.backend [-] Loading Windows +2021-12-05 07:53:07.281 875110 INFO keyring.backend [-] Loading chainer +2021-12-05 07:53:07.298 875110 INFO keyring.backend [-] Loading macOS +2021-12-05 07:53:40.655 875100 INFO alembic.runtime.migration [req-d0adebed-b618-4138-9d57-786be1ea6fb2 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:40.656 875100 INFO alembic.runtime.migration [req-d0adebed-b618-4138-9d57-786be1ea6fb2 - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:40.707 875101 INFO alembic.runtime.migration [req-e512a93f-0b05-4cce-8fc2-b31a31a074df - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:40.708 875101 INFO alembic.runtime.migration [req-e512a93f-0b05-4cce-8fc2-b31a31a074df - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.057 2982961 INFO alembic.runtime.migration [req-3ede0d78-9773-4e68-8eaa-da1c59f9a4aa - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.058 2982961 INFO alembic.runtime.migration [req-3ede0d78-9773-4e68-8eaa-da1c59f9a4aa - - - - -] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_sample -ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_sample ... ok +2021-12-05 07:53:40.760 875099 INFO alembic.runtime.migration [req-94ebe575-b57c-45b8-9efe-08a0abee4576 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:40.761 875099 INFO alembic.runtime.migration [req-94ebe575-b57c-45b8-9efe-08a0abee4576 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.158 2982965 INFO alembic.runtime.migration [req-b9c8cb91-8fb2-4ac0-967c-0307c4e9b860 - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.159 2982965 INFO alembic.runtime.migration [req-b9c8cb91-8fb2-4ac0-967c-0307c4e9b860 - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:41.024 875102 INFO alembic.runtime.migration [req-f0290185-7fd0-4002-bb4e-b3c9b1aa6887 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:41.025 875102 INFO alembic.runtime.migration [req-f0290185-7fd0-4002-bb4e-b3c9b1aa6887 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.225 2982975 INFO alembic.runtime.migration [req-9fba8462-87b5-49df-9dc0-4e83c95810ae - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.225 2982975 INFO alembic.runtime.migration [req-9fba8462-87b5-49df-9dc0-4e83c95810ae - - - - -] Will assume non-transactional DDL. -2023-01-06 12:09:56.257 2982985 INFO alembic.runtime.migration [req-8592455e-2631-467f-8271-ec078e7ed080 - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.258 2982985 INFO alembic.runtime.migration [req-8592455e-2631-467f-8271-ec078e7ed080 - - - - -] Will assume non-transactional DDL. -2023-01-06 12:09:56.285 2982977 INFO alembic.runtime.migration [req-7cd97b09-7cb7-46a7-bf13-bd1345780dbf - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.285 2982977 INFO alembic.runtime.migration [req-7cd97b09-7cb7-46a7-bf13-bd1345780dbf - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:41.672 875106 INFO alembic.runtime.migration [req-b3a99e6f-8898-4b2c-b166-227b005d480e - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:41.673 875106 INFO alembic.runtime.migration [req-b3a99e6f-8898-4b2c-b166-227b005d480e - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:41.723 875104 INFO alembic.runtime.migration [req-11a0689f-02e7-4a61-89b6-ce79af296e03 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:41.724 875104 INFO alembic.runtime.migration [req-11a0689f-02e7-4a61-89b6-ce79af296e03 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. +2021-12-05 07:53:41.986 875107 INFO alembic.runtime.migration [req-8e23602e-d929-44de-9fba-61ee4880c73b - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:41.987 875107 INFO alembic.runtime.migration [req-8e23602e-d929-44de-9fba-61ee4880c73b - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.416 2982969 INFO alembic.runtime.migration [req-700cda49-a7d1-4470-8a4a-ef003aa1cd96 - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.417 2982969 INFO alembic.runtime.migration [req-700cda49-a7d1-4470-8a4a-ef003aa1cd96 - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:42.088 875103 INFO alembic.runtime.migration [req-898eaea0-b932-42ac-8784-e5b745cacad8 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:42.089 875103 INFO alembic.runtime.migration [req-898eaea0-b932-42ac-8784-e5b745cacad8 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.483 2982973 INFO alembic.runtime.migration [req-2ec35dd8-e35c-43d3-ac98-e4343a0a29bb - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.484 2982973 INFO alembic.runtime.migration [req-2ec35dd8-e35c-43d3-ac98-e4343a0a29bb - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:42.460 875109 INFO alembic.runtime.migration [req-8882b316-8daf-475a-b580-dac12a159cd4 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:42.461 875109 INFO alembic.runtime.migration [req-8882b316-8daf-475a-b580-dac12a159cd4 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.557 2982963 INFO alembic.runtime.migration [req-ba310cb7-6eaf-4408-bb65-54d03a59c4e8 - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.557 2982963 INFO alembic.runtime.migration [req-ba310cb7-6eaf-4408-bb65-54d03a59c4e8 - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:42.648 875113 INFO alembic.runtime.migration [req-85a5ab40-a2c7-4eb3-b7fa-1517b08062f9 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:42.649 875113 INFO alembic.runtime.migration [req-85a5ab40-a2c7-4eb3-b7fa-1517b08062f9 - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:42.682 875105 INFO alembic.runtime.migration [req-af8b6afb-ae91-4614-bc39-7862497f6e60 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:42.683 875105 INFO alembic.runtime.migration [req-af8b6afb-ae91-4614-bc39-7862497f6e60 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.631 2982987 INFO alembic.runtime.migration [req-562f93e2-3f6a-4690-a536-ace279dafdeb - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.631 2982987 INFO alembic.runtime.migration [req-562f93e2-3f6a-4690-a536-ace279dafdeb - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.711 2982971 INFO alembic.runtime.migration [req-170d90f4-bc85-4f86-916d-214daa5e0ba4 - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.712 2982971 INFO alembic.runtime.migration [req-170d90f4-bc85-4f86-916d-214daa5e0ba4 - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:42.783 875112 INFO alembic.runtime.migration [req-5f05c048-358d-4924-add5-35930b294873 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:42.784 875112 INFO alembic.runtime.migration [req-5f05c048-358d-4924-add5-35930b294873 - - - - -] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init +ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.745 2982983 INFO alembic.runtime.migration [req-71754ee2-a02c-4b28-9276-f23468d0aebc - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.746 2982983 INFO alembic.runtime.migration [req-71754ee2-a02c-4b28-9276-f23468d0aebc - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:42.904 875108 INFO alembic.runtime.migration [req-3a6ce145-1bc4-4ef6-aa40-1bc14a2fc48f - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:42.905 875108 INFO alembic.runtime.migration [req-3a6ce145-1bc4-4ef6-aa40-1bc14a2fc48f - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.793 2982979 INFO alembic.runtime.migration [req-67bc786e-5d8b-4e7b-af82-325bb9d712b4 - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.794 2982979 INFO alembic.runtime.migration [req-67bc786e-5d8b-4e7b-af82-325bb9d712b4 - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:42.998 875111 INFO alembic.runtime.migration [req-35a75634-9a3f-4aa1-ab86-ab8643d949c0 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:42.999 875111 INFO alembic.runtime.migration [req-35a75634-9a3f-4aa1-ab86-ab8643d949c0 - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2023-01-06 12:09:56.854 2982967 INFO alembic.runtime.migration [req-62730408-e092-473b-9aa7-fe7a8027686d - - - - -] Context impl SQLiteImpl. -2023-01-06 12:09:56.855 2982967 INFO alembic.runtime.migration [req-62730408-e092-473b-9aa7-fe7a8027686d - - - - -] Will assume non-transactional DDL. +2021-12-05 07:53:43.188 875110 INFO alembic.runtime.migration [req-4a609dd5-6c10-48c0-b6d2-e8bc679a9db7 - - - - -] Context impl SQLiteImpl. +2021-12-05 07:53:43.189 875110 INFO alembic.runtime.migration [req-4a609dd5-6c10-48c0-b6d2-e8bc679a9db7 - - - - -] 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 -> 664f85c2f622 @@ -4242,1451 +4273,1337 @@ INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok ... ok -ironic.tests.unit.api.controllers.v1.test_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.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.TestListChassis.test_detail -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ... ok -ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup -ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error ... 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.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.test_base.TestVersion.test_repr +ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr ... 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.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_chassis.TestListChassis.test_links_public_url -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url ... ok -ironic.tests.unit.api.controllers.v1.test_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_chassis.TestDelete.test_delete_nodes_subresource -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_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.TestChassisObject.test_chassis_sample +ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_sample ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals +ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ... ok ironic.tests.unit.api.controllers.v1.test_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_chassis.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource ... ok ironic.tests.unit.api.controllers.v1.test_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.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_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_driver.TestListDrivers.test_driver_vendor_passthru_delete -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.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_detail_using_query_false_and_fields -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_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_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.test_base.TestVersion.test_equals +ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_error ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -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_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_chassis.TestListChassis.test_nodes_subresource_no_uuid -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_chassis.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi ... 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_driver.TestListDrivers.test_drivers -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers ... 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.TestPatch.test_patch_nodes_subresource ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_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_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.TestPost.test_create_chassis_generate_uuid +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_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_chassis.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_driver_vendor_passthru_sync +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 +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_chassis.TestPost.test_create_chassis_invalid_description +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis ... ok +ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri +ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_chassis.TestListChassis.test_links_public_url +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_driver_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.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_chassis.TestListChassis.test_detail +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ... 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_driver.TestListDrivers.test_raid_logical_disk_properties_cached +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 +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 +INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.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_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_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_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_conductor_unavailable +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable ... 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_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_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_driver.TestListDrivers.test_links_public_url -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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.test_base.TestBase.test_api_setup +ironic.tests.unit.api.controllers.test_base.TestBase.test_api_setup ... ok ironic.tests.unit.api.controllers.v1.test_node.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_driver.TestListDrivers.test_driver_vendor_passthru_get -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed_storage_interface ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed ... ok +ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_ramdisk_api_policy +ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_ramdisk_api_policy ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict ... ok +ironic.tests.unit.api.controllers.v1.test_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_sort_key +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key ... 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 +INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 +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_chassis.TestListChassis.test_detail_using_query_old_version +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.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.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.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.TestAttachDetachVif.test_vif_detach ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach ... ok -ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri -ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri ... ok -ironic.tests.unit.api.controllers.v1.test_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_chassis.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_args_value_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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_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.test_base.TestVersion.test_lessthan -ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_fake ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.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_node.TestAttachDetachVif.test_vif_detach_node_locked +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... 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_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_chassis.TestDelete.test_delete_chassis_with_node +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -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_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_chassis.TestPost.test_create_chassis_invalid_description -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_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_driver.TestListDrivers.test_drivers_no_active_conductor +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor ... ok ironic.tests.unit.api.controllers.v1.test_node.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_driver.TestListDrivers.test_driver_vendor_passthru_sync -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node ... ok -GET: /v1/chassis/detail {} -GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:57.292299+00:00'}]} -GET: /v1/chassis?sort_key=uuid {} -GOT:{'chassis': [{'uuid': '506cc85f-ce1c-464f-81c2-5f3d823eb025', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/506cc85f-ce1c-464f-81c2-5f3d823eb025', 'rel': 'self'}, {'href': 'http://localhost/chassis/506cc85f-ce1c-464f-81c2-5f3d823eb025', 'rel': 'bookmark'}]}, {'uuid': '51502565-ea4b-4f93-b5fc-7934630fa79f', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/51502565-ea4b-4f93-b5fc-7934630fa79f', 'rel': 'self'}, {'href': 'http://localhost/chassis/51502565-ea4b-4f93-b5fc-7934630fa79f', 'rel': 'bookmark'}]}, {'uuid': 'ee2fbd03-6881-496f-957f-235514d9f54c', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ee2fbd03-6881-496f-957f-235514d9f54c', 'rel': 'self'}, {'href': 'http://localhost/chassis/ee2fbd03-6881-496f-957f-235514d9f54c', 'rel': 'bookmark'}]}]} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +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_chassis.TestListChassis.test_one +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one ... 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_node.TestBIOS.test_get_one_bios_fails_if_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_if_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_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_chassis.TestListChassis.test_detail_query +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_chassis.TestPost.test_create_chassis_toolong_description +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description ... ok +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-6e507014-f744-474a-a2d7-80a49d42a680 +Openstack-Request-Id: req-db07a12f-5994-4127-a221-c1c3f3172caf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/chassis {} +GOT:{'chassis': [{'uuid': '7195e458-22a6-4b2e-9005-8d263835a581', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/7195e458-22a6-4b2e-9005-8d263835a581', 'rel': 'self'}, {'href': 'http://localhost/chassis/7195e458-22a6-4b2e-9005-8d263835a581', 'rel': 'bookmark'}]}, {'uuid': '1d58b440-1dcb-4d69-89f0-0bd848e6d2fd', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/1d58b440-1dcb-4d69-89f0-0bd848e6d2fd', 'rel': 'self'}, {'href': 'http://localhost/chassis/1d58b440-1dcb-4d69-89f0-0bd848e6d2fd', 'rel': 'bookmark'}]}, {'uuid': '43136351-d4ef-449f-b0f7-8c0493c085ee', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/43136351-d4ef-449f-b0f7-8c0493c085ee', 'rel': 'self'}, {'href': 'http://localhost/chassis/43136351-d4ef-449f-b0f7-8c0493c085ee', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&limit=3&marker=43136351-d4ef-449f-b0f7-8c0493c085ee'} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -Openstack-Request-Id: req-65723677-7254-469c-9ea3-bcb7af1c0ad1 +Openstack-Request-Id: req-08d248c5-9f0f-4447-a2df-4e599ef86f20 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f {} +GOT:{'uuid': 'f75b72f3-e789-47fb-8956-5b99cd92669f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.030419+00:00'} +GET: /v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f {} +GOT:{'uuid': 'f75b72f3-e789-47fb-8956-5b99cd92669f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.030419+00:00'} +GET: /chassis/f75b72f3-e789-47fb-8956-5b99cd92669f {} +GOT:{'uuid': 'f75b72f3-e789-47fb-8956-5b99cd92669f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/f75b72f3-e789-47fb-8956-5b99cd92669f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.030419+00:00'} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} -GOT:Response: 404 Not Found +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.385263+00:00'} +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 -Openstack-Request-Id: req-c06191e6-1fdc-4df5-ad11-2e08395bd24d +Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +Openstack-Request-Id: req-f46f4c42-f7a0-4cc5-94b9-c4c62ebda50a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The driver 'fake-hardware-type' is unknown.\", \"debuginfo\": null}"} -GET: /v1/drivers?detail=True {} -GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', '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'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['direct', 'iscsi'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', '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'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': None, 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': [], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_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/fake-hardware-type/raid/logical_disk_properties {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-fab960c6-b7aa-4aae-8f8b-4c78b037a651 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": null, "created_at": "2021-12-04T17:53:48.504534+00:00"} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.504534+00:00'} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 204 No Content +Openstack-Request-Id: req-a8ea5126-ac0a-4486-b8aa-19d7011bb90e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': [{'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'}], 'created_at': '2023-01-07T00:09:58.880152+00:00', 'updated_at': None}]}ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals -ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_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_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 +X-Openstack-Ironic-Api-Version: 1.1 + +GET: /v1/nodes?associated=true {} +GOT:{'nodes': [{'uuid': '22c5da3f-230a-4675-ba0f-33800802592c', 'instance_uuid': '3aefd93e-09d5-4fbe-b2ad-08417e79663e', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/22c5da3f-230a-4675-ba0f-33800802592c', 'rel': 'self'}, {'href': 'http://localhost/nodes/22c5da3f-230a-4675-ba0f-33800802592c', 'rel': 'bookmark'}]}, {'uuid': 'bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'instance_uuid': 'e88ee2a5-da35-461b-899c-9a23edd776d2', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'rel': 'bookmark'}]}, {'uuid': '93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'instance_uuid': 'e06d5918-a9e0-4de4-9a85-c114dab9fbb6', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'rel': 'bookmark'}]}, {'uuid': '51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'instance_uuid': 'a3a92ceb-97fd-479b-9591-e3b2aef47a9f', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'rel': 'self'}, {'href': 'http://localhost/nodes/51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=True {} +GOT:{'nodes': [{'uuid': '22c5da3f-230a-4675-ba0f-33800802592c', 'instance_uuid': '3aefd93e-09d5-4fbe-b2ad-08417e79663e', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/22c5da3f-230a-4675-ba0f-33800802592c', 'rel': 'self'}, {'href': 'http://localhost/nodes/22c5da3f-230a-4675-ba0f-33800802592c', 'rel': 'bookmark'}]}, {'uuid': 'bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'instance_uuid': 'e88ee2a5-da35-461b-899c-9a23edd776d2', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc237a45-0d8b-45e3-bb93-5de99b01eab7', 'rel': 'bookmark'}]}, {'uuid': '93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'instance_uuid': 'e06d5918-a9e0-4de4-9a85-c114dab9fbb6', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/93f93b5e-2e3b-494f-bf26-3b6822ef20ac', 'rel': 'bookmark'}]}, {'uuid': '51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'instance_uuid': 'a3a92ceb-97fd-479b-9591-e3b2aef47a9f', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'rel': 'self'}, {'href': 'http://localhost/nodes/51c92cd5-b321-44aa-a7a7-6568adf51a0e', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.TestListNodes.test_get_all_interface_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.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_expose.TestExposedAPIMethodsCheckPolicy.test_ramdisk_api_policy -ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_ramdisk_api_policy ... 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.test_base.TestVersion.test_repr_with_strings -ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_not_dict ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_node.TestDelete.test_delete_node_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links ... 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_chassis.TestListChassis.test_detail_query -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.TestDelete.test_delete_associated -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated ... 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 INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.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.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.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_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.test_base.TestVersion.test_init -ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ... 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_conductor_group_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ... 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.test_base.TestVersion.test_repr -ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr ... 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_node.TestListNodes.test_collection_links_instance_uuid_param -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.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 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-24596ea6-8c70-49e0-b7ee-9d1b53deea1c -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -GET: /v1/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331 {} -GOT:{'uuid': '218e3bb9-5e40-42dc-b81a-567b3c40c331', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331', 'rel': 'self'}, {'href': 'http://foo/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:57.425939+00:00'} -GET: /v1/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331 {} -GOT:{'uuid': '218e3bb9-5e40-42dc-b81a-567b3c40c331', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331', 'rel': 'self'}, {'href': 'http://foo/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:57.425939+00:00'} -GET: /chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331 {} -GOT:{'uuid': '218e3bb9-5e40-42dc-b81a-567b3c40c331', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331', 'rel': 'self'}, {'href': 'http://foo/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/218e3bb9-5e40-42dc-b81a-567b3c40c331/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:57.425939+00:00'} -GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed ... ok +ironic.tests.unit.api.controllers.v1.test_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_chassis.TestListChassis.test_detail_using_query_and_fields +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.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_driver.TestListDrivers.test_driver_type_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed ... ok +DELETE: /v1/chassis/eb9d0f8f-0f7f-46b2-8614-d5769fb58d5e GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2d7ef5d0-7a32-4d1d-b09e-74e22613d170 +Openstack-Request-Id: req-47f14a3f-2f53-4f07-8a6a-1d804d31b3b1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -PATCH: /v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5 [{'path': '/extra/foo2', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eb9d0f8f-0f7f-46b2-8614-d5769fb58d5e could not be found.\", \"debuginfo\": null}"} +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-0cf97f3f-ba91-4c49-bfd7-876bce724084 +Openstack-Request-Id: req-9a4ee449-a620-484c-bf1c-90f65cae0414 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "a618a4c1-c055-4614-935a-bc69f1ba52f5", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5", "rel": "self"}, {"href": "http://localhost/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5/nodes", "rel": "bookmark"}], "updated_at": "2023-01-07T00:09:58.033167+00:00", "created_at": "2023-01-07T00:09:57.786842+00:00"} -GET: /v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5 {} -GOT:{'uuid': 'a618a4c1-c055-4614-935a-bc69f1ba52f5', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5', 'rel': 'self'}, {'href': 'http://localhost/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5/nodes', 'rel': 'bookmark'}], 'updated_at': '2023-01-07T00:09:58.033167+00:00', 'created_at': '2023-01-07T00:09:57.786842+00:00'} -PATCH: /v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +POST: /v1/chassis {'extra': {}, 'description': 'data-center-1-chassis'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-50f37fe5-7790-4189-988c-309fd8e6b42a +Location: http://localhost/v1/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714 +Openstack-Request-Id: req-da9affc7-b8dd-44c6-960e-2b195ce7e810 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "a618a4c1-c055-4614-935a-bc69f1ba52f5", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5", "rel": "self"}, {"href": "http://localhost/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5/nodes", "rel": "self"}, {"href": "http://localhost/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5/nodes", "rel": "bookmark"}], "updated_at": "2023-01-07T00:09:58.081127+00:00", "created_at": "2023-01-07T00:09:57.786842+00:00"} -GET: /v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5 {} -GOT:{'uuid': 'a618a4c1-c055-4614-935a-bc69f1ba52f5', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5', 'rel': 'self'}, {'href': 'http://localhost/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/a618a4c1-c055-4614-935a-bc69f1ba52f5/nodes', 'rel': 'bookmark'}], 'updated_at': '2023-01-07T00:09:58.081127+00:00', 'created_at': '2023-01-07T00:09:57.786842+00:00'} +{"uuid": "d30888b0-c81d-40cf-894d-d1ea8ae5d714", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714", "rel": "self"}, {"href": "http://localhost/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:47.934539+00:00"} +GET: /v1/chassis {} +GOT:{'chassis': [{'uuid': 'd30888b0-c81d-40cf-894d-d1ea8ae5d714', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714', 'rel': 'self'}, {'href': 'http://localhost/chassis/d30888b0-c81d-40cf-894d-d1ea8ae5d714', 'rel': 'bookmark'}]}]} POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Content-Type: application/json -Openstack-Request-Id: req-fd799a71-e94e-4709-8519-46965523b962 +Openstack-Request-Id: req-5ca8676b-02e1-4186-9c1d-02bf8717e7ce X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null -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'} -DELETE: /v1/nodes/node-39/vifs/516c5206-6b75-4e69-a88a-1f23c74f7e01 -GOT:Response: 204 No Content -Openstack-Request-Id: req-578ab611-8769-4f94-8b5c-efbc023e5e0a +GET: /v1/drivers?detail=True {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-2bf99009-fe2a-4872-a7a3-3238445a8e4a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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}"} +POST: /v1/nodes/node-39/vifs {'id': 'c234445d-6e9d-4e60-b0a6-609dcf00b1d3'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-83213cd6-e575-4037-8f01-bbf2961e0676 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} -GOT:{'virtualization': {'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'}], 'created_at': '2023-01-07T00:09:58.874214+00:00', 'updated_at': None}} -DELETE: /v1/nodes/foo.1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-c9505950-5c1f-4aaa-91f6-ea40264896e4 +{"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-9f1610e5-2dfa-45f7-96b3-0e46151d2117 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 - -DELETE: /v1/nodes/foo/maintenance -GOT:Response: 202 Accepted -Openstack-Request-Id: req-a97ebff8-6212-469a-a971-3858b906b92a +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received invalid%id^.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ad05905a-cc2c-4e52-bef6-3996aa1c4ac2 +GOT:Response: 204 No Content +Openstack-Request-Id: req-3fdf585f-3ac9-429f-822d-44642a3cbf54 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 +X-Openstack-Ironic-Api-Version: 1.28 -GET: /v1/nodes/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:09:59.479368+00:00'}]}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.TestAttachDetachVif.test_vif_attach_by_node_name -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name ... ok +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} +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_group': ''} +GET: /v1/nodes/node.json {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'node.json', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:49.069561+00:00'} +GET: /v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e {} +GOT:{'uuid': '8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.304601+00:00'} +GET: /v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e {} +GOT:{'uuid': '8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.304601+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_portgroup_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_chassis.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_chassis.TestListChassis.test_detail_using_query_false_and_fields +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_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_node.TestListNodes.test_empty ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_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.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_chassis.TestListChassis.test_empty -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_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.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_expose.TestExposedAPIMethodsCheckPolicy.test_node_api_policy +ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_node_api_policy ... ok ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_driver_api_policy ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_driver_api_policy ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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_node.TestListNodes.test_detail_using_query_false_and_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.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_expose.TestExposedAPIMethodsCheckPolicy.test_portgroup_api_policy -ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_portgroup_api_policy ... 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.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 -GET: /v1/chassis?detail=True {} +GET: /v1/chassis?fields=uuid,extra {} +GOT:{'chassis': [{'uuid': 'd2b81bc4-81e7-4a64-b5d7-a6d614a4857c', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/d2b81bc4-81e7-4a64-b5d7-a6d614a4857c', 'rel': 'self'}, {'href': 'http://localhost/chassis/d2b81bc4-81e7-4a64-b5d7-a6d614a4857c', 'rel': 'bookmark'}]}, {'uuid': '071e3992-8896-4408-a5d8-7d3f1b3e2840', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/071e3992-8896-4408-a5d8-7d3f1b3e2840', 'rel': 'self'}, {'href': 'http://localhost/chassis/071e3992-8896-4408-a5d8-7d3f1b3e2840', 'rel': 'bookmark'}]}, {'uuid': '053b4d77-5c58-4ae7-8e98-a1482e7d3615', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/053b4d77-5c58-4ae7-8e98-a1482e7d3615', 'rel': 'self'}, {'href': 'http://localhost/chassis/053b4d77-5c58-4ae7-8e98-a1482e7d3615', '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-481c47c0-0a1b-47b8-a1bd-fbf8e843a3f7 +Openstack-Request-Id: req-b95a5ace-eeca-4a64-a8e0-4dc0f79ffbbf X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'new', 'op': 'replace'}] -GOT:Response: 500 Internal Server Error +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} +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-a36cf1dc-a3a0-41e1-80ec-356366c3dc24 +Openstack-Request-Id: req-49624dda-5e5f-42a1-8447-1cea9157ca08 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} -GOT:Response: 500 Internal Server Error +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} +GOT:{'vifs': []} +DELETE: /v1/nodes/foo +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ae62c0f0-8b5a-42e9-a74c-d393c8238162 +Openstack-Request-Id: req-3f4e56c9-a01f-49e2-848d-a83fc988c355 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"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'} -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'}]} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/555189b6-d3f3-4d85-9b4c-6ef36e13f985 -GOT:Response: 204 No Content -Openstack-Request-Id: req-5423eb6e-14b9-4ea9-ac6d-43779d11b2c0 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 - -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-72375855-e83f-4e6b-8f66-c978a8fe92a5 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"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-837a7918-b909-43a2-b996-93154fd209b1 +Openstack-Request-Id: req-eb3752e8-ee9b-4d1e-b1c5-317e15d30fc2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"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-0a8aab64-4494-4893-af59-7ee106511719 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -GET: /v1/nodes?resource_class=test {} -GOT:{'nodes': []} -GET: /v1/nodes?traits=CUSTOM_TRAIT_1 {} +GET: /v1/nodes/?limit=3 {} +GOT:{'nodes': [{'uuid': '85c702fc-20dc-41a4-9bda-9e24e2340d67', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/85c702fc-20dc-41a4-9bda-9e24e2340d67', 'rel': 'self'}, {'href': 'http://localhost/nodes/85c702fc-20dc-41a4-9bda-9e24e2340d67', 'rel': 'bookmark'}]}, {'uuid': '66d3decd-be17-4433-b69c-efecc3de7947', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/66d3decd-be17-4433-b69c-efecc3de7947', 'rel': 'self'}, {'href': 'http://localhost/nodes/66d3decd-be17-4433-b69c-efecc3de7947', 'rel': 'bookmark'}]}, {'uuid': 'c9a9c20c-e337-48c6-b654-095cb55ec5fa', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c9a9c20c-e337-48c6-b654-095cb55ec5fa', 'rel': 'self'}, {'href': 'http://localhost/nodes/c9a9c20c-e337-48c6-b654-095cb55ec5fa', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=c9a9c20c-e337-48c6-b654-095cb55ec5fa'} +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, '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, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, '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&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a6901018-3ad2-4750-99a6-b49539066df8 +Openstack-Request-Id: req-f706e98e-3650-4a8a-b0ce-1507ea8da209 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} -GET: /v1/nodes/node.json.json {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'node.json', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:09:59.701117+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2023-01-07T00:09:59.895118+00:00'}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_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_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.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 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} -GOT:{'nodes': [{'uuid': '27e1ae02-7483-4ef2-8002-22a1671f2215', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/27e1ae02-7483-4ef2-8002-22a1671f2215', 'rel': 'self'}, {'href': 'http://localhost/nodes/27e1ae02-7483-4ef2-8002-22a1671f2215', 'rel': 'bookmark'}]}, {'uuid': 'e115fcc8-5fec-4d21-a90e-9f41fee9e5ea', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e115fcc8-5fec-4d21-a90e-9f41fee9e5ea', 'rel': 'self'}, {'href': 'http://localhost/nodes/e115fcc8-5fec-4d21-a90e-9f41fee9e5ea', 'rel': 'bookmark'}]}]} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} -GOT:{'nodes': [{'uuid': '27e1ae02-7483-4ef2-8002-22a1671f2215', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/27e1ae02-7483-4ef2-8002-22a1671f2215', 'rel': 'self'}, {'href': 'http://localhost/nodes/27e1ae02-7483-4ef2-8002-22a1671f2215', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=1&marker=27e1ae02-7483-4ef2-8002-22a1671f2215'} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'foo': 123}, 'description': 'data-center-1-chassis'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} +GET: /v1/nodes/detail?instance_uuid=bb95771d-d292-4cfb-b04b-abf823930271 {} +GOT:{'nodes': [{'uuid': '09b0114d-1576-4e49-af1b-32efc8da4a1a', 'instance_uuid': 'bb95771d-d292-4cfb-b04b-abf823930271', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/09b0114d-1576-4e49-af1b-32efc8da4a1a', 'rel': 'self'}, {'href': 'http://localhost/nodes/09b0114d-1576-4e49-af1b-32efc8da4a1a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/09b0114d-1576-4e49-af1b-32efc8da4a1a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/09b0114d-1576-4e49-af1b-32efc8da4a1a/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.951862+00:00'}]} +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 -Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -Openstack-Request-Id: req-6a53cb44-07e1-4688-b0ad-d8922985f7ea +Openstack-Request-Id: req-339b03df-2ee0-4022-82da-ed127e3cc02e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": null, "created_at": "2023-01-07T00:09:57.781824+00:00"} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:57.781824+00:00'} -GET: /v1/drivers/test/properties {} -GOT:{'prop1': 'Property 1. Required.'} -GET: /v1/drivers?detail=False {} +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes?fields=uuid,instance_info {} +GOT:{'nodes': [{'uuid': '6840da64-906f-463e-a247-e00d5fa15f34', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/6840da64-906f-463e-a247-e00d5fa15f34', 'rel': 'self'}, {'href': 'http://localhost/nodes/6840da64-906f-463e-a247-e00d5fa15f34', 'rel': 'bookmark'}]}, {'uuid': '63bd016f-a0bf-47e0-96d9-1c8340058f41', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/63bd016f-a0bf-47e0-96d9-1c8340058f41', 'rel': 'self'}, {'href': 'http://localhost/nodes/63bd016f-a0bf-47e0-96d9-1c8340058f41', 'rel': 'bookmark'}]}, {'uuid': '3d332118-81e9-488c-bdfc-b6272b6b8f69', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/3d332118-81e9-488c-bdfc-b6272b6b8f69', 'rel': 'self'}, {'href': 'http://localhost/nodes/3d332118-81e9-488c-bdfc-b6272b6b8f69', '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-3ea417f7-ba05-4262-8671-f20ff94541a4 +Openstack-Request-Id: req-9b3a41a1-97c6-4083-b2b2-f17802032c92 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} -GOT:{'vifs': []} -DELETE: /v1/nodes/foo.json +X-Openstack-Ironic-Api-Version: 1.19 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}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_chassis.TestPost.test_create_chassis +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_chassis.TestListChassis.test_get_one +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_bios_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported ... ok +INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url ... ok +ironic.tests.unit.api.controllers.v1.test_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_nodes_by_traits_not_allowed_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found ... ok +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content -Openstack-Request-Id: req-b3f0d7d0-bc73-4afd-9ef9-674058df97c3 +Openstack-Request-Id: req-246011d9-2a13-4591-9852-a1477ca5e65b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 +X-Openstack-Ironic-Api-Version: 1.1 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-5d1a8b90-8841-4b98-9ce7-717f2cb5b6da -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"debuginfo\": null}"} -GET: /v1/nodes/?limit=3 {} -GOT:{'nodes': [{'uuid': 'f58429b8-1ec0-4d2f-ae21-dfb8197c1149', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f58429b8-1ec0-4d2f-ae21-dfb8197c1149', 'rel': 'self'}, {'href': 'http://localhost/nodes/f58429b8-1ec0-4d2f-ae21-dfb8197c1149', 'rel': 'bookmark'}]}, {'uuid': 'bbae6ab6-1da9-4492-a0e1-a6014a744046', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bbae6ab6-1da9-4492-a0e1-a6014a744046', 'rel': 'self'}, {'href': 'http://localhost/nodes/bbae6ab6-1da9-4492-a0e1-a6014a744046', 'rel': 'bookmark'}]}, {'uuid': 'f7c04a35-accb-446b-95d9-17fd6f9cf9d8', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f7c04a35-accb-446b-95d9-17fd6f9cf9d8', 'rel': 'self'}, {'href': 'http://localhost/nodes/f7c04a35-accb-446b-95d9-17fd6f9cf9d8', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=f7c04a35-accb-446b-95d9-17fd6f9cf9d8'} -GET: /v1/nodes/detail?instance_uuid=3a120ca9-81bf-4eab-baf5-840133710780 {} -GOT:{'nodes': [{'uuid': 'e630ec0f-0552-4d47-82cc-4e6fdea433dc', 'instance_uuid': '3a120ca9-81bf-4eab-baf5-840133710780', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/e630ec0f-0552-4d47-82cc-4e6fdea433dc', 'rel': 'self'}, {'href': 'http://localhost/nodes/e630ec0f-0552-4d47-82cc-4e6fdea433dc', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e630ec0f-0552-4d47-82cc-4e6fdea433dc/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e630ec0f-0552-4d47-82cc-4e6fdea433dc/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:59.327671+00:00'}]} -GET: /v1/nodes?driver=fake {} -GOT:Response: 406 Not Acceptable +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6423fda6-ea81-410e-8c9a-8b8ec2fe112d +Openstack-Request-Id: req-b29f07ce-5a0e-4dec-9995-9081debd4dea X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis e74c40e0-d825-11e2-a28f-0800200c9a66 could not be found.\", \"debuginfo\": null}"} +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'}]} +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 -Openstack-Request-Id: req-2fb1c9d1-0f76-4304-b6ac-ccfd1718b219 +Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +Openstack-Request-Id: req-fe2b8b58-17de-4e81-a125-296b75ca6304 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:09:59.877002+00:00'}]}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.TestListNodes.test_hide_fields_in_newer_versions_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_storage_interface ... ok -ironic.tests.unit.api.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_expose.TestExposedAPIMethodsCheckPolicy.test_node_api_policy -ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_node_api_policy ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable ... ok -ironic.tests.unit.api.controllers.v1.test_node.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 -GET: /v1/chassis {} -GOT:{'chassis': [{'uuid': 'a1eb2b84-0a96-45b1-9e1d-f40372362d79', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/a1eb2b84-0a96-45b1-9e1d-f40372362d79', 'rel': 'self'}, {'href': 'http://localhost/chassis/a1eb2b84-0a96-45b1-9e1d-f40372362d79', 'rel': 'bookmark'}]}, {'uuid': 'd2a20828-8fa5-4b11-975e-5ce92653b013', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/d2a20828-8fa5-4b11-975e-5ce92653b013', 'rel': 'self'}, {'href': 'http://localhost/chassis/d2a20828-8fa5-4b11-975e-5ce92653b013', 'rel': 'bookmark'}]}, {'uuid': '1af685db-64f8-47c7-816d-7bf95d51cbfd', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/1af685db-64f8-47c7-816d-7bf95d51cbfd', 'rel': 'self'}, {'href': 'http://localhost/chassis/1af685db-64f8-47c7-816d-7bf95d51cbfd', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&limit=3&marker=1af685db-64f8-47c7-816d-7bf95d51cbfd'} -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 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": null, "created_at": "2021-12-04T17:53:48.725609+00:00"} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.725609+00:00'} +GET: /v1/drivers/test/properties {} +GOT:{'prop1': 'Property 1. Required.'} +GET: /v1/drivers {} +GOT:{'drivers': []} +GET: /v1/drivers?detail=True {} +GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'type': 'dynamic', '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'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['direct', 'iscsi'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', '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'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': None, 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': [], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []}]} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /v1/drivers/fake-hardware-type-2 {} +GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} +GET: /drivers/fake-hardware-type-2 {} +GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} +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-60748c07-57ff-4d0a-bd09-6df925130350 +Openstack-Request-Id: req-26af009f-d63e-40a9-9d6b-d2c97c004bed X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"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 +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/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-59c5f9ec-955b-465d-86cc-a2f08852568b +Openstack-Request-Id: req-742243a2-e0ed-4ed4-a563-42810fb4a89a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": "2023-01-07T00:09:58.233231+00:00", "created_at": "2023-01-07T00:09:58.021633+00:00"} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': '2023-01-07T00:09:58.233231+00:00', 'created_at': '2023-01-07T00:09:58.021633+00:00'} -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 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/nodes?detail=True {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:49.695009+00:00'}]}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_expose.TestExposedAPIMethodsCheckPolicy.test_port_api_policy +ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_port_api_policy ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid ... ok +ironic.tests.unit.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.test_base.TestVersion.test_init +ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ... ok +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-826bdbf4-d120-4006-918c-f04544b58a67 +Openstack-Request-Id: req-c154cea7-f8a2-4337-b69a-7bb9c588debe X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\", \"debuginfo\": null}"} -POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870 [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-00422d39-b700-4d94-b3fe-dda979f302ae +Openstack-Request-Id: req-a7fb7caa-ad16-4108-bff3-7f2c8d2c589d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"return_key": "return_value"} -GET: /v1/drivers?type=working {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-e38426c5-2f70-4232-8031-8ad3750cc5e4 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/fake-hardware-type {} -GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} -GET: /drivers/fake-hardware-type {} -GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'e45f8ed6-4ed4-469d-b312-eefae4f1360f'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-5b26a074-84e1-4564-a905-37f75ad4571f -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 - -GET: /v1/nodes {} -GOT:{'nodes': []} -GET: /v1/nodes/?limit=3&associated=True {} -GOT:{'nodes': [{'uuid': 'a1964765-e57b-49b9-92e6-4670fba3734e', 'instance_uuid': '590a95a4-c3cc-4a43-ba2e-20de9aafd621', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a1964765-e57b-49b9-92e6-4670fba3734e', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1964765-e57b-49b9-92e6-4670fba3734e', 'rel': 'bookmark'}]}, {'uuid': '16e495dc-ce8c-4d3c-b0f6-bb151b0ddacb', 'instance_uuid': '10dfe6aa-0f29-4097-948d-dbe8117d737f', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/16e495dc-ce8c-4d3c-b0f6-bb151b0ddacb', 'rel': 'self'}, {'href': 'http://localhost/nodes/16e495dc-ce8c-4d3c-b0f6-bb151b0ddacb', 'rel': 'bookmark'}]}, {'uuid': '000df2cd-e193-4835-9949-f5c076b3526b', 'instance_uuid': '35708fd7-be1a-46cf-9bc7-d0fb76b0902b', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/000df2cd-e193-4835-9949-f5c076b3526b', 'rel': 'self'}, {'href': 'http://localhost/nodes/000df2cd-e193-4835-9949-f5c076b3526b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=000df2cd-e193-4835-9949-f5c076b3526b'} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'replace'}] +{"uuid": "f57a0fe7-3dba-4e6e-86ed-212781132870", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870", "rel": "self"}, {"href": "http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes", "rel": "self"}, {"href": "http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes", "rel": "bookmark"}], "updated_at": "2021-12-04T17:53:48.052657+00:00", "created_at": "2021-12-04T17:53:48.000692+00:00"} +GET: /v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870 {} +GOT:{'uuid': 'f57a0fe7-3dba-4e6e-86ed-212781132870', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870', 'rel': 'self'}, {'href': 'http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-12-04T17:53:48.052657+00:00', 'created_at': '2021-12-04T17:53:48.000692+00:00'} +PATCH: /v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-90d9daad-3e43-44ab-99ea-f8f88a68c19a -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:00.042563+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json ... ok -DELETE: /v1/chassis/061b2c61-063a-499d-8013-f3a7adf1dc99 -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-f3425bbf-bee2-40be-9ba6-d04a9f834945 +Openstack-Request-Id: req-346006c2-2485-4213-a3dc-94d9041104db X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 061b2c61-063a-499d-8013-f3a7adf1dc99 could not be found.\", \"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/nodes {} +{"uuid": "f57a0fe7-3dba-4e6e-86ed-212781132870", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870", "rel": "self"}, {"href": "http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes", "rel": "self"}, {"href": "http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes", "rel": "bookmark"}], "updated_at": "2021-12-04T17:53:48.098703+00:00", "created_at": "2021-12-04T17:53:48.000692+00:00"} +GET: /v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870 {} +GOT:{'uuid': 'f57a0fe7-3dba-4e6e-86ed-212781132870', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870', 'rel': 'self'}, {'href': 'http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/f57a0fe7-3dba-4e6e-86ed-212781132870/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-12-04T17:53:48.098703+00:00', 'created_at': '2021-12-04T17:53:48.000692+00:00'} +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-e35d1a70-5c26-4671-8de5-308ab8fb7516 +Openstack-Request-Id: req-9c5777e9-c9e8-4b0a-a8cc-428c646a5c86 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/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'], 'type': 'dynamic', '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'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_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 {} -GOT:{} -GET: /drivers/fake-hardware-type/properties {} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 409 Conflict +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: '1334'. Value should be string\", \"debuginfo\": null}"} +DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test +GOT:Response: 202 Accepted Content-Type: application/json -Openstack-Request-Id: req-f6324bab-868c-420d-8cdb-dfe409844f73 +Openstack-Request-Id: req-c4102088-d2c7-46c3-bedc-3a663dfe97f0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} -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_group': ''} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} -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'}], 'network_interface': None} -GET: /v1/nodes?conductor_group=group1 {} -GOT:{'nodes': [{'uuid': '0590cf27-bf32-457b-9c5d-9711dafd704b', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b', 'rel': 'self'}, {'href': 'http://localhost/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?conductor_group=group2 {} -GOT:{'nodes': [{'uuid': '55fe18a2-040b-484d-af3e-5b153b1f32dc', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc', 'rel': 'self'}, {'href': 'http://localhost/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?conductor_group=group1 {} -GOT:{'nodes': [{'uuid': '0590cf27-bf32-457b-9c5d-9711dafd704b', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b', 'rel': 'self'}, {'href': 'http://localhost/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0590cf27-bf32-457b-9c5d-9711dafd704b/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': 'group1', 'updated_at': None, 'created_at': '2023-01-07T00:09:59.752025+00:00'}]} -GET: /v1/nodes/detail?conductor_group=group2 {} -GOT:{'nodes': [{'uuid': '55fe18a2-040b-484d-af3e-5b153b1f32dc', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc', 'rel': 'self'}, {'href': 'http://localhost/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/55fe18a2-040b-484d-af3e-5b153b1f32dc/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': 'group2', 'updated_at': None, 'created_at': '2023-01-07T00:09:59.756717+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_update_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.test_base.TestVersion.test_greaterthan -ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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_hide_fields_in_newer_versions_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list ... ok -ironic.tests.unit.api.controllers.v1.test_node.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 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +null +DELETE: /v1/nodes/foo.json GOT:Response: 204 No Content -Openstack-Request-Id: req-34596e45-a8a5-4e97-a62d-002992dc08db +Openstack-Request-Id: req-f6967e58-1434-41c5-9bcd-b1482efd6a17 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.5 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-967c45d9-7099-47ab-a235-0f63deedb134 +Openstack-Request-Id: req-dcf24bea-0690-4b4b-95ce-2a12a639b0d1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"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-e81da18f-e6b1-4adc-b81e-b2a51566d38d +Openstack-Request-Id: req-9a9bbf21-20fe-4559-9100-14ebec437b4a X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"debuginfo\": null}"} +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:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:{'boot_device': 'pxe', 'persistent': True} +GET: /v1/nodes?driver=ipmi {} +GOT:{'nodes': [{'uuid': 'a6cbbb2c-02a7-4771-86e2-4c89e4ff812b', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a6cbbb2c-02a7-4771-86e2-4c89e4ff812b', 'rel': 'self'}, {'href': 'http://localhost/nodes/a6cbbb2c-02a7-4771-86e2-4c89e4ff812b', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?driver=fake-hardware {} +GOT:{'nodes': [{'uuid': '9decfe14-94d2-4f16-85a7-01ad4adb7503', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9decfe14-94d2-4f16-85a7-01ad4adb7503', 'rel': 'self'}, {'href': 'http://localhost/nodes/9decfe14-94d2-4f16-85a7-01ad4adb7503', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/node.json.json {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'node.json', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:49.735720+00:00'}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_driver.TestListDrivers.test_drivers +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers ... 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.TestAttachDetachVif.test_vif_attach_by_node_name +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_by_node_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.TestListNodes.test_get_console_information +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings +ironic.tests.unit.api.controllers.test_base.TestVersion.test_repr_with_strings ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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.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_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_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 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'}]}]} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +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 {} +GOT:{'chassis': [{'uuid': 'c0c0da0d-f2e0-4229-a27f-9cfcafcbed4b', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c0c0da0d-f2e0-4229-a27f-9cfcafcbed4b', 'rel': 'self'}, {'href': 'http://localhost/chassis/c0c0da0d-f2e0-4229-a27f-9cfcafcbed4b', 'rel': 'bookmark'}]}, {'uuid': '87443dcc-f671-4537-b62d-444ea5e13b2a', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/87443dcc-f671-4537-b62d-444ea5e13b2a', 'rel': 'self'}, {'href': 'http://localhost/chassis/87443dcc-f671-4537-b62d-444ea5e13b2a', 'rel': 'bookmark'}]}, {'uuid': 'cbca438b-e399-464a-8f9d-9ad94b466bf6', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/cbca438b-e399-464a-8f9d-9ad94b466bf6', 'rel': 'self'}, {'href': 'http://localhost/chassis/cbca438b-e399-464a-8f9d-9ad94b466bf6', 'rel': 'bookmark'}]}, {'uuid': 'e52219eb-f5a0-4a03-ad14-fbc906a37b4d', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e52219eb-f5a0-4a03-ad14-fbc906a37b4d', 'rel': 'self'}, {'href': 'http://localhost/chassis/e52219eb-f5a0-4a03-ad14-fbc906a37b4d', 'rel': 'bookmark'}]}, {'uuid': 'ea3e5108-a2e5-462d-b29a-937a41dc7b3d', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ea3e5108-a2e5-462d-b29a-937a41dc7b3d', 'rel': 'self'}, {'href': 'http://localhost/chassis/ea3e5108-a2e5-462d-b29a-937a41dc7b3d', '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-923fa599-63dc-47b3-97d7-9924a548761c +Openstack-Request-Id: req-e7d0bd7e-0946-4d47-b977-9cce869843f1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/extra/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} +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-f603637f-5125-4a79-8047-c7f8fef275f5 +Openstack-Request-Id: req-bfc984bd-2731-4b8f-abb0-535f414c5e38 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/chassis/45a87299-6e90-4f56-ba5f-42338d726a6a [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The driver 'fake-hardware-type' is unknown.\", \"debuginfo\": null}"} +GET: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {} +GOT:foo +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ff1a55cd-df3d-41ae-a864-44fdccf25f1e'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-af6176db-65e0-425f-a3c8-34d6e2362e7a +Openstack-Request-Id: req-10694227-e319-40f3-8b26-a47d4a7e3ead X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "45a87299-6e90-4f56-ba5f-42338d726a6a", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/45a87299-6e90-4f56-ba5f-42338d726a6a", "rel": "self"}, {"href": "http://localhost/chassis/45a87299-6e90-4f56-ba5f-42338d726a6a", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/45a87299-6e90-4f56-ba5f-42338d726a6a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/45a87299-6e90-4f56-ba5f-42338d726a6a/nodes", "rel": "bookmark"}], "updated_at": "2023-01-07T00:09:58.541608+00:00", "created_at": "2023-01-07T00:09:58.486577+00:00"} -GET: /v1/chassis/45a87299-6e90-4f56-ba5f-42338d726a6a {} -GOT:{'uuid': '45a87299-6e90-4f56-ba5f-42338d726a6a', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/45a87299-6e90-4f56-ba5f-42338d726a6a', 'rel': 'self'}, {'href': 'http://localhost/chassis/45a87299-6e90-4f56-ba5f-42338d726a6a', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/45a87299-6e90-4f56-ba5f-42338d726a6a/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/45a87299-6e90-4f56-ba5f-42338d726a6a/nodes', 'rel': 'bookmark'}], 'updated_at': '2023-01-07T00:09:58.541608+00:00', 'created_at': '2023-01-07T00:09:58.486577+00:00'} -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-a6db3524-c0e4-4011-b14b-7815c22257ad +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/node-39/vifs/00a82a5d-cc51-497e-966c-c626f81da6a5 +GOT:Response: 204 No Content +Openstack-Request-Id: req-80850a2c-b23a-4e96-8dfd-229746be04cb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: '1334'. Value should be string\", \"debuginfo\": null}"} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]} -GET: /v1/drivers/nope {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.28 + +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/8178560c-1e11-4b19-aef1-f59277275791 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-a3c0f47d-e2a5-4196-9f57-df6bdfd62440 +Openstack-Request-Id: req-e2c59c19-ffe9-450d-8ae7-6d7493282548 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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?type=dynamic {} -GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'type': 'dynamic', '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'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', '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'}]}]} +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}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/virtualization {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-030dcbcf-7865-477e-af4d-62a1ca52a7c6 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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}"} -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-4b5a1f08-2af6-468a-aaa5-839104389a94 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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?provision_state=test {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-e91f6d55-7509-4b46-89c8-20d4e217077e -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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}"}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_chassis.TestPost.test_create_chassis_generate_uuid -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_collection_custom_fields ... ok - -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +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-81a2a573-2ca0-4a86-a7ba-0cfef67873ec +Openstack-Request-Id: req-8c0ddabc-d34b-4168-b4a8-c262866ef8c3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -GET: /v1/nodes?instance_uuid=71a451d1-13cc-46e1-bcc6-a80bc10fbe2f {} -GOT:{'nodes': [{'uuid': '0791094e-1690-4fe4-b128-b8f257ae10f8', 'instance_uuid': '71a451d1-13cc-46e1-bcc6-a80bc10fbe2f', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0791094e-1690-4fe4-b128-b8f257ae10f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/0791094e-1690-4fe4-b128-b8f257ae10f8', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?sort_key=resource_class {} -GOT:{'nodes': [{'uuid': 'e9b87840-8858-46ab-8ba0-064ead6be5a4', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e9b87840-8858-46ab-8ba0-064ead6be5a4', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9b87840-8858-46ab-8ba0-064ead6be5a4', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e9b87840-8858-46ab-8ba0-064ead6be5a4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9b87840-8858-46ab-8ba0-064ead6be5a4/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e9b87840-8858-46ab-8ba0-064ead6be5a4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9b87840-8858-46ab-8ba0-064ead6be5a4/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:09:59.664879+00:00'}, {'uuid': '9d83c0e5-5329-4e69-b5a1-5b5129a2ba63', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_2', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/9d83c0e5-5329-4e69-b5a1-5b5129a2ba63', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d83c0e5-5329-4e69-b5a1-5b5129a2ba63', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9d83c0e5-5329-4e69-b5a1-5b5129a2ba63/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d83c0e5-5329-4e69-b5a1-5b5129a2ba63/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9d83c0e5-5329-4e69-b5a1-5b5129a2ba63/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d83c0e5-5329-4e69-b5a1-5b5129a2ba63/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:09:59.658773+00:00'}, {'uuid': '56d82ed4-f0bd-4d11-bca0-a5e16257fcd5', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_3', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/56d82ed4-f0bd-4d11-bca0-a5e16257fcd5', 'rel': 'self'}, {'href': 'http://localhost/nodes/56d82ed4-f0bd-4d11-bca0-a5e16257fcd5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/56d82ed4-f0bd-4d11-bca0-a5e16257fcd5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/56d82ed4-f0bd-4d11-bca0-a5e16257fcd5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/56d82ed4-f0bd-4d11-bca0-a5e16257fcd5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/56d82ed4-f0bd-4d11-bca0-a5e16257fcd5/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:09:59.652167+00:00'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b776cb67-d228-42e0-a427-05f14a5a60f3 +Openstack-Request-Id: req-784745b6-1431-487c-a44f-b56c0664eff4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.45 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/nodes?conductor_group=group1 {} -GOT:Response: 406 Not Acceptable +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,spongebob {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0700b225-5391-42a4-a6e1-7becd7cdfc97 +Openstack-Request-Id: req-b9747f8f-0924-4347-959b-fa3dbb58b607 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +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-ec8f93da-50d4-41ba-89af-284437b10172 +Openstack-Request-Id: req-466d2979-be43-4dae-a654-637b2a7c8a0f X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} +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?fields=traits {} +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'}], 'traits': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'inspecting', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2023-01-07T00:10:00.343772+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes ... ok +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.077363+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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 -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:58.357734+00:00'} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:58.520010+00:00'} -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-05d32b77-6529-4a30-b06a-b2a796c24980 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": "2000-01-01T00:00:00+00:00", "created_at": "2023-01-07T00:09:58.688571+00:00"} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': '2000-01-01T00:00:00+00:00', 'created_at': '2023-01-07T00:09:58.688571+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} -GOT:Response: 404 Not Found +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_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_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.TestListChassis.test_nodes_subresource_chassis_not_found +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_hide_fields_in_newer_versions_inspection +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ... ok + +GET: /nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e {} +GOT:{'uuid': '8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/8f773dcf-64ed-4712-af01-d65b41bc8b5e/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.304601+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.564839+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:49.564839+00:00'} +GET: /v1/nodes?instance_uuid=fb7020fe-c360-405d-a982-978371d68989 {} +GOT:{'nodes': [{'uuid': 'b5ef685a-edef-4d5b-9e9d-22429fbf958c', 'instance_uuid': 'fb7020fe-c360-405d-a982-978371d68989', 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b5ef685a-edef-4d5b-9e9d-22429fbf958c', 'rel': 'self'}, {'href': 'http://localhost/nodes/b5ef685a-edef-4d5b-9e9d-22429fbf958c', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.029505+00:00'} +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-d35ecf46-2ffb-4e99-96e2-961cb88df61e +Openstack-Request-Id: req-e578172e-250a-42a8-91ab-9798e34f9f95 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a BIOS setting 'fake_setting'\", \"debuginfo\": null}"} -DELETE: /v1/nodes/foo -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.TestBIOS.test_get_one_bios +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.TestListNodes.test_get_nodes_by_traits_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_chassis.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_replace_multi ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.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_expose.TestExposedAPIMethodsCheckPolicy.test_portgroup_api_policy +ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_portgroup_api_policy ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.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_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_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_driver.TestListDrivers.test_drivers_type_filter_dynamic +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic ... ok +ironic.tests.unit.api.controllers.v1.test_node.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 + +GET: /v1/nodes/detail?sort_key=resource_class {} +GOT:{'nodes': [{'uuid': 'e742bc9f-9a43-4634-8511-9d39068daf74', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e742bc9f-9a43-4634-8511-9d39068daf74', 'rel': 'self'}, {'href': 'http://localhost/nodes/e742bc9f-9a43-4634-8511-9d39068daf74', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e742bc9f-9a43-4634-8511-9d39068daf74/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e742bc9f-9a43-4634-8511-9d39068daf74/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e742bc9f-9a43-4634-8511-9d39068daf74/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e742bc9f-9a43-4634-8511-9d39068daf74/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:49.302897+00:00'}, {'uuid': 'e9244f80-f1dd-42fd-931f-2388680a11dc', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_2', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9244f80-f1dd-42fd-931f-2388680a11dc/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:49.297981+00:00'}, {'uuid': 'f8b4951b-016d-4d92-9b75-553e82b0b9a7', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'rc_3', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f8b4951b-016d-4d92-9b75-553e82b0b9a7/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:49.292737+00:00'}]} +GET: /v1/nodes?provision_state=available {} +GOT:{'nodes': [{'uuid': '4a2af214-664a-46ae-ab5f-72c833c33f52', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/4a2af214-664a-46ae-ab5f-72c833c33f52', 'rel': 'self'}, {'href': 'http://localhost/nodes/4a2af214-664a-46ae-ab5f-72c833c33f52', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?provision_state=deploying {} +GOT:{'nodes': [{'uuid': '02afb037-84b0-49a1-849c-a01f75811ded', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'deploying', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/02afb037-84b0-49a1-849c-a01f75811ded', 'rel': 'self'}, {'href': 'http://localhost/nodes/02afb037-84b0-49a1-849c-a01f75811ded', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?resource_class=foo {} +GOT:{'nodes': [{'uuid': '625464c1-fcc4-4a33-9d71-733dc8482980', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/625464c1-fcc4-4a33-9d71-733dc8482980', 'rel': 'self'}, {'href': 'http://localhost/nodes/625464c1-fcc4-4a33-9d71-733dc8482980', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?resource_class=bar {} +GOT:{'nodes': [{'uuid': 'f553269c-db5c-4bfe-8336-a6da1b4569eb', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f553269c-db5c-4bfe-8336-a6da1b4569eb', 'rel': 'self'}, {'href': 'http://localhost/nodes/f553269c-db5c-4bfe-8336-a6da1b4569eb', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?resource_class=fake {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-c42048d4-49b9-4c29-bfaa-9abdf496fa4a +Openstack-Request-Id: req-03b86ba4-2cbf-478b-bdc9-a7f086b1834e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -GET: /v1/nodes?fault=somefake {} +{"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-9814a2a7-c22a-4583-bf4a-a111961415c2 +Openstack-Request-Id: req-fa4e46dd-d8c5-43b1-95c4-6e2b5cebe4d5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.42 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unrecognized fault \\\"somefake\\\" is specified, allowed faults are ('power failure', 'clean failure', 'rescue abort failure')\", \"debuginfo\": null}"} -GET: /v1/nodes/detail?fault=somefake {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:50.545711+00:00'}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.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.TestPatch.test_patch_add_name_reserved +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version ... ok +ironic.tests.unit.api.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.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.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_node.TestListNodes.test_get_nodes_by_resource_class_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_instance_uuid_param ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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_node.TestListNodes.test_get_storage_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_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_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource ... 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.TestNodeObject.test_node_init +ironic.tests.unit.api.controllers.v1.test_node.TestNodeObject.test_node_init ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_driver.TestListDrivers.test_links +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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_console_information_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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.TestListNodes.test_detail_against_single +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_no_vif_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid ... ok +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-08c4cb55-7272-4eae-b275-06530fc90aad +Openstack-Request-Id: req-08c25ad3-f36a-404c-9195-3caa5830ef3b X-Openstack-Ironic-Api-Maximum-Version: 1.46 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?resource_class=fake {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/chassis/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-81bb44fa-d5d0-4696-a142-802e1496d6dd +Openstack-Request-Id: req-7a7ce1a2-34f3-4f9e-8980-9310554d5e61 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:10:00.196492+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:00.464718+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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.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.TestListNodes.test_get_supported_boot_devices_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_node.TestPost.test_create_node_specify_conductor_group -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -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_node.TestListNodes.test_node_states_raid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestNodeObject.test_node_init -ironic.tests.unit.api.controllers.v1.test_node.TestNodeObject.test_node_init ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.TestPatch.test_patch_update_name_twice_both_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_hw_type ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_query_false ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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_chassis.TestListChassis.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_against_single ... ok -GET: /v1/bad/path {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +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-e29d9925-666c-45e5-bb56-5a258ccf2446 +Openstack-Request-Id: req-3fd23712-51dc-4705-a3a1-1037ef9793a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -GET: /v1/chassis?detail=True {} -GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:59.204831+00:00'}]} -GET: /v1/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510 {} -GOT:{'uuid': 'ae21f275-dd72-4669-8eb7-cbb5289d8510', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510', 'rel': 'self'}, {'href': 'http://localhost/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:59.387849+00:00'} -GET: /v1/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510 {} -GOT:{'uuid': 'ae21f275-dd72-4669-8eb7-cbb5289d8510', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510', 'rel': 'self'}, {'href': 'http://localhost/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:59.387849+00:00'} -GET: /chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510 {} -GOT:{'uuid': 'ae21f275-dd72-4669-8eb7-cbb5289d8510', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510', 'rel': 'self'}, {'href': 'http://localhost/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ae21f275-dd72-4669-8eb7-cbb5289d8510/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:09:59.387849+00:00'} -POST: /v1/nodes/node-39/vifs {'id': '857ea226-fa05-41ca-9c63-b421c9ea6bed'} +{"return_key": "return_value"} +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'} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'e4162adf-9ef8-43aa-991d-755d94c6c7fe'} GOT:Response: 204 No Content -Openstack-Request-Id: req-63d14e04-dd5d-45a5-8e0b-9e9e2cf2bea4 +Openstack-Request-Id: req-681165e3-d9e1-4430-bd06-b2dbc0de3148 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 400 Bad Request +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-97f9e2a0-04c0-4897-9785-68b92b39086d +Openstack-Request-Id: req-00b15a46-4aed-4651-ace3-f7bd723ebc28 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 +X-Openstack-Ironic-Api-Version: 1.40 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 doesn't have a BIOS setting 'fake_setting'\", \"debuginfo\": null}"} +DELETE: /v1/nodes/foo +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-ed6e5628-ee42-42ab-a4c2-e291db79c1e0 +Openstack-Request-Id: req-7740fb5f-b177-461c-a9bd-9035a5114b69 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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=network_interface {} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fba6a87e-df6c-46c1-8c06-a6b387213981 +Openstack-Request-Id: req-39c7365a-4870-46f4-a5d2-25dae803f012 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=extra,instance_info {} -GOT:{'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'extra': {}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\", \"debuginfo\": null}"} +GET: /v1/nodes {} +GOT:{'nodes': []} +GET: /v1/nodes/spam/states/console {} +GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} +GET: /v1/nodes/detail?resource_class=test {} +GOT:{'nodes': []} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.057901+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'foo': 'bar'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.057901+00:00'} +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': '18bffad2-af21-4716-ae60-d1467a2db4ac', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/18bffad2-af21-4716-ae60-d1467a2db4ac', 'rel': 'self'}, {'href': 'http://localhost/nodes/18bffad2-af21-4716-ae60-d1467a2db4ac', 'rel': 'bookmark'}]}, {'uuid': '5a34df0d-6ecf-4cf2-870c-5a7474098e4c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5a34df0d-6ecf-4cf2-870c-5a7474098e4c', 'rel': 'self'}, {'href': 'http://localhost/nodes/5a34df0d-6ecf-4cf2-870c-5a7474098e4c', 'rel': 'bookmark'}]}, {'uuid': '73b956e3-c090-46d6-871a-ad6e4dbc01e4', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/73b956e3-c090-46d6-871a-ad6e4dbc01e4', 'rel': 'self'}, {'href': 'http://localhost/nodes/73b956e3-c090-46d6-871a-ad6e4dbc01e4', 'rel': 'bookmark'}]}, {'uuid': 'dd982270-19c6-46ea-886d-b0dba12f5e09', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/dd982270-19c6-46ea-886d-b0dba12f5e09', 'rel': 'self'}, {'href': 'http://localhost/nodes/dd982270-19c6-46ea-886d-b0dba12f5e09', 'rel': 'bookmark'}]}, {'uuid': 'd863b04f-9d1d-4b1f-9abe-11b6a606b08b', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d863b04f-9d1d-4b1f-9abe-11b6a606b08b', 'rel': 'self'}, {'href': 'http://localhost/nodes/d863b04f-9d1d-4b1f-9abe-11b6a606b08b', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '2000-01-01T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid ... ok +ironic.tests.unit.api.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.TestPatch.test_add_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version ... ok +ironic.tests.unit.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.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.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_patch_deploy_step_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden ... ok + +GET: /v1/nodes/detail?traits=CUSTOM_TRAIT_1 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7ed88270-028a-459f-a346-d220822a4257 +Openstack-Request-Id: req-b21e1e9e-978e-4c8c-82a9-5dfc21c0bd4c X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +GOT:{'supported_boot_devices': ['pxe']} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:00.802774+00:00'} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.140049+00:00'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:00.802774+00:00'}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 - -PATCH: /v1/nodes/8e802b22-78ca-4f37-a53c-8f86bcfbe894 [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': '2015-03-18T19:20:00+00:00', 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.140049+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.457153+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:50.457153+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:{'portgroups': [{'uuid': '1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'rel': 'bookmark'}]}, {'uuid': '693cff3d-ccb0-48c3-83c0-84bb224d9de6', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/693cff3d-ccb0-48c3-83c0-84bb224d9de6', 'rel': 'self'}, {'href': 'http://localhost/portgroups/693cff3d-ccb0-48c3-83c0-84bb224d9de6', 'rel': 'bookmark'}]}]}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_node.TestListNodes.test_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_node.TestPatch.test_patch_add_name_empty_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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.TestPatch.test_replace_maintenance +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource ... ok +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} +GOT:{'nodes': [{'uuid': '584fabce-d96d-4281-a577-ac0d0692487c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/584fabce-d96d-4281-a577-ac0d0692487c', 'rel': 'self'}, {'href': 'http://localhost/nodes/584fabce-d96d-4281-a577-ac0d0692487c', 'rel': 'bookmark'}]}, {'uuid': 'eb50e162-c9e5-4f6e-a40a-a54d3327c160', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/eb50e162-c9e5-4f6e-a40a-a54d3327c160', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb50e162-c9e5-4f6e-a40a-a54d3327c160', 'rel': 'bookmark'}]}]} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} +GOT:{'nodes': [{'uuid': '584fabce-d96d-4281-a577-ac0d0692487c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/584fabce-d96d-4281-a577-ac0d0692487c', 'rel': 'self'}, {'href': 'http://localhost/nodes/584fabce-d96d-4281-a577-ac0d0692487c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=1&marker=584fabce-d96d-4281-a577-ac0d0692487c'} +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-8e982794-a928-4c36-934d-5b10b3002506 +Openstack-Request-Id: req-20a929f0-d41f-4cef-b56f-37b23070e7d3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.21 -{"uuid": "8e802b22-78ca-4f37-a53c-8f86bcfbe894", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/8e802b22-78ca-4f37-a53c-8f86bcfbe894", "rel": "self"}, {"href": "http://localhost/nodes/8e802b22-78ca-4f37-a53c-8f86bcfbe894", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8e802b22-78ca-4f37-a53c-8f86bcfbe894/ports", "rel": "self"}, {"href": "http://localhost/nodes/8e802b22-78ca-4f37-a53c-8f86bcfbe894/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8e802b22-78ca-4f37-a53c-8f86bcfbe894/states", "rel": "self"}, {"href": "http://localhost/nodes/8e802b22-78ca-4f37-a53c-8f86bcfbe894/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2023-01-07T00:10:00.302633+00:00"} -POST: /v1/nodes {'name': None, '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, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": "2021-12-04T17:53:50.020726+00:00", "created_at": "2021-12-04T17:53:49.953455+00:00"} +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'chassis-new-description', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-6937b783-fa19-4131-997c-1fa59cfccbf7 +Openstack-Request-Id: req-ed83b9d8-7a28-4964-95bf-b956266dd8ce X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "foo", "updated_at": null, "created_at": "2023-01-07T00:10:00.676299+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': 'foo', 'updated_at': None, 'created_at': '2023-01-07T00:10:00.676299+00:00'} -POST: /v1/nodes {'name': None, '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, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": "2000-01-01T00:00:00+00:00", "created_at": "2021-12-04T17:53:50.159606+00:00"} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': '2000-01-01T00:00:00+00:00', 'created_at': '2021-12-04T17:53:50.159606+00:00'} +GET: /v1/drivers?detail=False {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-920e94b9-2038-4b6b-b59e-52a8cceccf57 +Openstack-Request-Id: req-072ac5d1-a68a-4b25-a0ad-a2a55f4bdc11 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"}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.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_sort_key -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits ... ok -ironic.tests.unit.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 +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/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', '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'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['direct', 'iscsi'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_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 {} +GOT:{} +GET: /drivers/fake-hardware-type/properties {} +GET: /v1/drivers?detail=True {} +GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', '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'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['direct', 'iscsi'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', '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'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': None, 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': [], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}]}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.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_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_node.TestListNodes.test_detail_using_query_old_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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.TestListNodes.test_detail_using_query -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_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_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_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.TestListNodes.test_get_nodes_by_fault_with_invalid_fault +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:09:59.895118+00:00'} -GET: /v1/nodes/ports {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.077363+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.373625+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.582929+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:50.582929+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.857539+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource ... ok +ironic.tests.unit.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.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_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.TestPost.test_create_node_invalid_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_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.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.TestPut.test_inject_nmi_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_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 +GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4c69c346-3c42-4ef5-ab05-10e3071c6e30 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ports could not be found.\", \"debuginfo\": null}"} -GET: /v1/nodes?sort_key=resource_class {} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/chassis/detail {} +GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:48.354694+00:00'}]} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ee2e3bd0-a695-47d5-9967-536d6e45626c +Openstack-Request-Id: req-31827a21-35d7-48a4-8641-2e650aad276d X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'guido-van-rossum'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/chassis?sort_key=uuid {} +GOT:{'chassis': [{'uuid': '42689a46-24c7-4a4e-8486-7214ace4e322', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/42689a46-24c7-4a4e-8486-7214ace4e322', 'rel': 'self'}, {'href': 'http://localhost/chassis/42689a46-24c7-4a4e-8486-7214ace4e322', 'rel': 'bookmark'}]}, {'uuid': '4baa5ea4-8e9c-4063-9827-989b97a91305', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/4baa5ea4-8e9c-4063-9827-989b97a91305', 'rel': 'self'}, {'href': 'http://localhost/chassis/4baa5ea4-8e9c-4063-9827-989b97a91305', 'rel': 'bookmark'}]}, {'uuid': '8a7ffbd9-fbca-45bc-95e9-22a0285f35bc', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/8a7ffbd9-fbca-45bc-95e9-22a0285f35bc', 'rel': 'self'}, {'href': 'http://localhost/chassis/8a7ffbd9-fbca-45bc-95e9-22a0285f35bc', 'rel': 'bookmark'}]}]} +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-e3694dc6-672e-40f9-b3df-1a4738532cbb +Openstack-Request-Id: req-543a03a1-a600-49d1-a5e8-63ecdcb3fb1b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:00.595198+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'Windows ME'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": "2021-12-04T17:53:48.996202+00:00", "created_at": "2021-12-04T17:53:48.790971+00:00"} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': '2021-12-04T17:53:48.996202+00:00', 'created_at': '2021-12-04T17:53:48.790971+00:00'} +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-07708f07-a0ca-48e3-8e11-9e7d935c5cf4 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/fc15129b-7e89-4d03-9259-ca4f1f27396e [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-762d3d56-c5bc-4e58-9fe1-e8a55528b6a3 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/fc15129b-7e89-4d03-9259-ca4f1f27396e [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-0ca3554b-73a6-48f3-8ab7-5f7a54c81313 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/fc15129b-7e89-4d03-9259-ca4f1f27396e [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-389e2446-7c02-46f4-ab3e-6c80db318212 +Openstack-Request-Id: req-6decf0ad-7afb-483d-8b0a-ba20a832c6cc X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/fc15129b-7e89-4d03-9259-ca4f1f27396e [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'. Value should have a maximum character requirement of 255\", \"debuginfo\": null}"} +DELETE: /v1/nodes/doesntexist/vifs/aebf63ef-cd6c-4f7d-9233-e7a539d93261 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-69c79c92-e8ad-40c1-b862-43c3e093b27f +Openstack-Request-Id: req-826cf405-1576-4bbb-a076-94545e445bfe X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/fc15129b-7e89-4d03-9259-ca4f1f27396e [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +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/bios {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-cdbb2e52-13af-410e-9c0e-cbc1772c409e -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/fc15129b-7e89-4d03-9259-ca4f1f27396e [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-6b4ea30a-b835-4cb9-a8ba-f3297e3eb905 +Openstack-Request-Id: req-b5585fef-49ee-4080-8f64-6889963f3f61 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance ... ok - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-cdc2e401-09db-44eb-b554-f4d0262c582d +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/foo/maintenance +GOT:Response: 202 Accepted +Openstack-Request-Id: req-d65d557d-e926-461a-90bc-fe21542f85c4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:00.817818+00:00'}]} -GET: /v1/nodes/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': ['CUSTOM_1'], 'updated_at': None, 'created_at': '2023-01-07T00:10:00.817818+00:00'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:01.219706+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2023-01-07T00:10:01.219706+00:00'}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_changed_fields_remove_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -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.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_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_volume_subresource_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version ... 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_node.TestPatch.test_patch_add_replace_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_replace_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_chassis.TestListChassis.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root ... ok +X-Openstack-Ironic-Api-Version: 1.5 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GET: /v1/nodes/spam/management/boot_device {} +GOT:{'boot_device': 'pxe', 'persistent': True} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-876127fe-5082-451e-badf-57d50ac855d3 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:00.231677+00:00'}]} -GET: /v1/nodes/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:00.231677+00:00'}]} -GET: /v1/nodes/validate?node=spam {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-86390c64-b81d-44b3-b3d7-326278e3ffca +Openstack-Request-Id: req-f081307e-b21e-40c8-b8d1-5d8ff92b9c44 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 [{'path': '/name', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} +GET: /v1/nodes?fault=power failure {} +GOT:{'nodes': [{'uuid': 'e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?fault=clean failure {} +GOT:{'nodes': [{'uuid': 'a1471c10-ea01-4abf-a4cc-08453c139aa5', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?fault=power failure {} +GOT:{'nodes': [{'uuid': 'e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': 'power failure', 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5315a3b-c985-4c1f-b211-7fcdffc163ab/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.264782+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link ... 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 +GET: /v1/chassis?detail=True {} +GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.078129+00:00'}]} +GET: /v1/chassis?detail=True&fields=description {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a6b5a7fd-4942-4cca-8472-8bffd0e6f0b3 +Openstack-Request-Id: req-70f524e0-8fd1-4fa9-a80a-3cfd1e46bace X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:01.007751+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"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/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.597176+00:00'} +GET: /v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2 {} +GOT:{'uuid': '83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.910526+00:00'} +GET: /v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2 {} +GOT:{'uuid': '83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.910526+00:00'} +GET: /chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2 {} +GOT:{'uuid': '83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/83e204b5-9eb8-4b6f-93fb-aa765aae10f2/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:49.910526+00:00'} +PATCH: /v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369 [{'path': '/description', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b92bf20f-a9a8-4172-9ff5-381eba3d36c5 +Openstack-Request-Id: req-2f583751-fe05-4aba-824b-758df056e932 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:01.394543+00:00"} -PATCH: /v1/nodes/9ad30f4c-9c5f-4424-823a-bfbcd550efd9 [{'path': '/instance_uuid', 'op': 'remove'}] +{"uuid": "6f4550a0-76ea-47ee-9c15-ccee9116d369", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369", "rel": "self"}, {"href": "http://localhost/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369/nodes", "rel": "self"}, {"href": "http://localhost/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369/nodes", "rel": "bookmark"}], "updated_at": "2021-12-04T17:53:50.262505+00:00", "created_at": "2021-12-04T17:53:50.162742+00:00"} +GET: /v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369 {} +GOT:{'uuid': '6f4550a0-76ea-47ee-9c15-ccee9116d369', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369', 'rel': 'self'}, {'href': 'http://localhost/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/6f4550a0-76ea-47ee-9c15-ccee9116d369/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-12-04T17:53:50.262505+00:00', 'created_at': '2021-12-04T17:53:50.162742+00:00'} +PATCH: /v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1308c00d-1167-4a75-8603-a2f5d93730a8 +Openstack-Request-Id: req-234ce50f-092a-4315-b424-7f00fb5d226b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "9ad30f4c-9c5f-4424-823a-bfbcd550efd9", "instance_uuid": null, "power_state": null, "target_power_state": "power off", "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": true, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/9ad30f4c-9c5f-4424-823a-bfbcd550efd9", "rel": "self"}, {"href": "http://localhost/nodes/9ad30f4c-9c5f-4424-823a-bfbcd550efd9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9ad30f4c-9c5f-4424-823a-bfbcd550efd9/ports", "rel": "self"}, {"href": "http://localhost/nodes/9ad30f4c-9c5f-4424-823a-bfbcd550efd9/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:01.701647+00:00"}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.TestPatch.test_patch_duplicate_name -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json ... ok -DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test +{"uuid": "3f28b4bc-d3df-4f41-aefa-b2d040ff47a0", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0", "rel": "self"}, {"href": "http://localhost/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0/nodes", "rel": "self"}, {"href": "http://localhost/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0/nodes", "rel": "bookmark"}], "updated_at": "2021-12-04T17:53:50.470742+00:00", "created_at": "2021-12-04T17:53:50.395988+00:00"} +GET: /v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0 {} +GOT:{'uuid': '3f28b4bc-d3df-4f41-aefa-b2d040ff47a0', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0', 'rel': 'self'}, {'href': 'http://localhost/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/3f28b4bc-d3df-4f41-aefa-b2d040ff47a0/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-12-04T17:53:50.470742+00:00', 'created_at': '2021-12-04T17:53:50.395988+00:00'} +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/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 Content-Type: application/json -Openstack-Request-Id: req-0d2903e0-6185-4a25-b7f6-000aa862d1f4 +Openstack-Request-Id: req-aa6303a7-9c15-4ecc-9c4f-8b0bc58abe6e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 null -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?detail=True {} -GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', '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'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', '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'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': None, 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': [], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_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'}]} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/f026459f-caaa-4301-b5a7-4ba3a8fc3174 -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-4cd453cb-510b-44f8-b7f7-25955c435f39 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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}"} -GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, '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, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, '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-6149f2af-6dda-455d-aea2-a36f16e9c277 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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': '034a6266-d868-44de-8cc2-3fb1261da2b6', 'instance_uuid': '7a74a63d-77ca-4261-abdb-ed373cdf63d0', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/034a6266-d868-44de-8cc2-3fb1261da2b6', 'rel': 'self'}, {'href': 'http://localhost/nodes/034a6266-d868-44de-8cc2-3fb1261da2b6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/034a6266-d868-44de-8cc2-3fb1261da2b6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/034a6266-d868-44de-8cc2-3fb1261da2b6/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:01.549203+00:00'}, {'uuid': 'b777722b-7986-486c-9029-80d1cad66119', 'instance_uuid': '9507f823-39c0-450e-80c9-787b0a53468e', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/b777722b-7986-486c-9029-80d1cad66119', 'rel': 'self'}, {'href': 'http://localhost/nodes/b777722b-7986-486c-9029-80d1cad66119', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/b777722b-7986-486c-9029-80d1cad66119/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b777722b-7986-486c-9029-80d1cad66119/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:01.555033+00:00'}, {'uuid': 'd12dbc65-005f-4a37-a435-d64d998f10e5', 'instance_uuid': '9b3d056c-b795-4a35-9b2d-a0cf954c9bb8', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/d12dbc65-005f-4a37-a435-d64d998f10e5', 'rel': 'self'}, {'href': 'http://localhost/nodes/d12dbc65-005f-4a37-a435-d64d998f10e5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/d12dbc65-005f-4a37-a435-d64d998f10e5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d12dbc65-005f-4a37-a435-d64d998f10e5/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:01.561596+00:00'}, {'uuid': 'c7ef7b05-617e-4375-a6b2-1f2d77bca8b0', 'instance_uuid': '6ed64b29-f0d8-434d-bf26-efbc2fb9eeda', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/c7ef7b05-617e-4375-a6b2-1f2d77bca8b0', 'rel': 'self'}, {'href': 'http://localhost/nodes/c7ef7b05-617e-4375-a6b2-1f2d77bca8b0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/c7ef7b05-617e-4375-a6b2-1f2d77bca8b0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c7ef7b05-617e-4375-a6b2-1f2d77bca8b0/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:01.567618+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', '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'}], 'default_bios_interface': None, 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_rescue_interface': None, 'default_storage_interface': None, 'default_vendor_interface': None, 'enabled_bios_interfaces': [], 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_rescue_interfaces': [], 'enabled_storage_interfaces': [], 'enabled_vendor_interfaces': []}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_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_expose.TestExposedAPIMethodsCheckPolicy.test_chasis_api_policy +ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_chasis_api_policy ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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.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.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_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_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_node.TestPatch.test_remove_mandatory_field -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.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_node.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info ... ok -ironic.tests.unit.api.controllers.v1.test_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_node.TestPatch.test_update_traits -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver ... 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_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.test_base.TestVersion.test_equals -ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_put ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface ... 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_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.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.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.TestDelete.test_portgroups_subresource_delete -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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_chassis.TestListChassis.test_collection_links -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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.TestPatch.test_replace_consoled_enabled -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_detail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_provision_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_maintenance_nodes +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes ... ok -GET: /v1/nodes/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': 'cinder', 'vendor_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:09:59.877002+00:00'}]} -GET: /v1/nodes?maintenance=true {} -GOT:{'nodes': [{'uuid': 'cdc02f17-d62c-49e0-b3b9-3f93c9f94d03', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/cdc02f17-d62c-49e0-b3b9-3f93c9f94d03', 'rel': 'self'}, {'href': 'http://localhost/nodes/cdc02f17-d62c-49e0-b3b9-3f93c9f94d03', 'rel': 'bookmark'}]}, {'uuid': 'b2b03392-80d0-4c92-a418-5cfe7384380b', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/b2b03392-80d0-4c92-a418-5cfe7384380b', 'rel': 'self'}, {'href': 'http://localhost/nodes/b2b03392-80d0-4c92-a418-5cfe7384380b', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?maintenance=false {} -GOT:{'nodes': [{'uuid': '0bfd7d92-3265-4888-9257-a973b7b59c8f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0bfd7d92-3265-4888-9257-a973b7b59c8f', 'rel': 'self'}, {'href': 'http://localhost/nodes/0bfd7d92-3265-4888-9257-a973b7b59c8f', 'rel': 'bookmark'}]}, {'uuid': '71fc63b8-eaae-4e98-b8a4-eeac613d4430', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/71fc63b8-eaae-4e98-b8a4-eeac613d4430', 'rel': 'self'}, {'href': 'http://localhost/nodes/71fc63b8-eaae-4e98-b8a4-eeac613d4430', 'rel': 'bookmark'}]}, {'uuid': '73d4d684-0542-40a9-9041-ce00dc672fe0', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/73d4d684-0542-40a9-9041-ce00dc672fe0', 'rel': 'self'}, {'href': 'http://localhost/nodes/73d4d684-0542-40a9-9041-ce00dc672fe0', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/123~123/ports {} -GOT:Response: 400 Bad Request -Content-Type: application/json -{"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 123~123. "} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:{'connectors': [{'uuid': 'bf913885-5c89-4456-92e9-f66defe527c1', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/bf913885-5c89-4456-92e9-f66defe527c1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/bf913885-5c89-4456-92e9-f66defe527c1', 'rel': 'bookmark'}]}, {'uuid': '9a1636f6-ad24-49cd-a058-86336c67cf8e', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/9a1636f6-ad24-49cd-a058-86336c67cf8e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9a1636f6-ad24-49cd-a058-86336c67cf8e', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} -GOT:{'connectors': [{'uuid': 'bf913885-5c89-4456-92e9-f66defe527c1', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/bf913885-5c89-4456-92e9-f66defe527c1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/bf913885-5c89-4456-92e9-f66defe527c1', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=1&marker=bf913885-5c89-4456-92e9-f66defe527c1'} -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-5be94ed9-c98d-47f5-8daf-c217783e8615 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-30d5d934-2846-4fa4-9f51-3fa48659831d +Openstack-Request-Id: req-f6a66415-f71a-4639-b6e6-fcbd9ae0bb91 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1d9523b3-d3d5-4d5b-839a-153ff7adb8a6 [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] -GOT:Response: 409 Conflict +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?fields=traits {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9633b9de-8840-420c-a01e-56b3b350d240 +Openstack-Request-Id: req-d6dd92e4-1d56-44b7-83b7-2aad74fead84 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/de5c6700-3282-47bb-83e4-bcd64ee8d319 [{'path': '/storage_interface', 'op': 'remove'}] -GOT:Response: 200 OK +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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.395256+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.395256+00:00'} +GET: /v1/nodes/?limit=3&associated=True {} +GOT:{'nodes': [{'uuid': 'd4cabc76-cbbe-4de6-8e70-b504a45652f0', 'instance_uuid': '0ad98f8b-d8f5-4e32-baaf-bca774e4d812', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d4cabc76-cbbe-4de6-8e70-b504a45652f0', 'rel': 'self'}, {'href': 'http://localhost/nodes/d4cabc76-cbbe-4de6-8e70-b504a45652f0', 'rel': 'bookmark'}]}, {'uuid': 'b8e0245f-9da6-4cdb-95c8-ecb8d69206d5', 'instance_uuid': 'e730899c-ad21-4130-a63b-3ce3af96d684', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b8e0245f-9da6-4cdb-95c8-ecb8d69206d5', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8e0245f-9da6-4cdb-95c8-ecb8d69206d5', 'rel': 'bookmark'}]}, {'uuid': '9b20a751-9827-48e3-b423-344c921048e0', 'instance_uuid': '90c42c5b-c956-4306-9753-48b8b8e6c421', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9b20a751-9827-48e3-b423-344c921048e0', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b20a751-9827-48e3-b423-344c921048e0', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=9b20a751-9827-48e3-b423-344c921048e0'} +GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-96268865-33a1-497f-be09-3b5447e07285 +Openstack-Request-Id: req-fd578091-1aa8-4609-9675-a61595d79cb0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "de5c6700-3282-47bb-83e4-bcd64ee8d319", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/de5c6700-3282-47bb-83e4-bcd64ee8d319", "rel": "self"}, {"href": "http://localhost/nodes/de5c6700-3282-47bb-83e4-bcd64ee8d319", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/de5c6700-3282-47bb-83e4-bcd64ee8d319/ports", "rel": "self"}, {"href": "http://localhost/nodes/de5c6700-3282-47bb-83e4-bcd64ee8d319/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/de5c6700-3282-47bb-83e4-bcd64ee8d319/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/de5c6700-3282-47bb-83e4-bcd64ee8d319/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/de5c6700-3282-47bb-83e4-bcd64ee8d319/volume", "rel": "self"}, {"href": "http://localhost/nodes/de5c6700-3282-47bb-83e4-bcd64ee8d319/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/de5c6700-3282-47bb-83e4-bcd64ee8d319/states", "rel": "self"}, {"href": "http://localhost/nodes/de5c6700-3282-47bb-83e4-bcd64ee8d319/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:02.134192+00:00"}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.TestPatch.test_update_conductor_group_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ... ok -ironic.tests.unit.api.controllers.v1.test_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_chassis.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_node.TestPost.test_create_node_invalid_bios_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_provision_updated_at ... ok - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'fish', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:00.464718+00:00'} -GET: /v1/nodes?instance_uuid=7831a359-f6fa-4176-83f5-bbbc968c9d0c {} -GOT:{'nodes': [{'uuid': 'cd884e27-9ea0-48c0-bb54-f460dbc812cd', 'instance_uuid': '7831a359-f6fa-4176-83f5-bbbc968c9d0c', 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/cd884e27-9ea0-48c0-bb54-f460dbc812cd', 'rel': 'self'}, {'href': 'http://localhost/nodes/cd884e27-9ea0-48c0-bb54-f460dbc812cd', 'rel': 'bookmark'}]}]} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-2ed20cc7-bf13-46c3-861e-3c7dbc7d5d35 +Openstack-Request-Id: req-cf002ed5-e7af-4817-b316-4b6f72cb4b55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 @@ -5694,7 +5611,7 @@ GET: /v1/nodes?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-77148862-082b-4478-83f9-e0a2f62d8d04 +Openstack-Request-Id: req-39a7af8b-fe89-4271-a0e8-5214e209f85f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 @@ -5702,1602 +5619,1924 @@ GET: /v1/nodes?sort_key=driver_info {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-04783612-9fc5-4abc-a11f-9f756604977c +Openstack-Request-Id: req-b1e8cfcf-12ab-4eda-b140-1b7e8c4485c2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value driver_info is an invalid field for sorting\", \"debuginfo\": null}"}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.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_patch_ports_subresource_no_port_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id ... ok + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/nodes/validate?node=spam {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-7f5dc842-db5a-4198-a2da-1f3f8a60153a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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/volume/targets {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-46001f6b-3b47-4c1d-ae74-755991672e2c +Openstack-Request-Id: req-eb51ca6d-90b9-4859-8cb2-56225bbdcdcb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/nodes?sort_key=instance_info {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"} +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-e9350ff1-4d13-49f2-9670-0177f02ebac2 +Openstack-Request-Id: req-2fca7ffc-2a6b-4841-b4bb-ec7a6bd9b660 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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 {} +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-121936b2-798f-4f2a-ad41-25d0829f9092 +Openstack-Request-Id: req-2617195b-f028-478d-8756-0fd74c56aead X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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 {} +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-3f37c941-e2c7-4d21-9c41-f29231c3a7bd +Openstack-Request-Id: req-6cd96bfe-9c98-4c26-8bd3-463caeecd90f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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 {} +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-dce4dde5-2489-42d1-97da-58cb8af9b654 +Openstack-Request-Id: req-cb1113d5-416f-4d3d-938d-5da10680554c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.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-1f18cbab-8408-4a57-9e5d-b007c338cc37 +Openstack-Request-Id: req-7b32dd9d-7473-4467-923b-fb2e1ff5ca55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +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-7c049a89-4629-43b6-98fd-d2904b95e9dd +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.10 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/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-03de6814-2ef7-4f0d-a38f-6574ec2ed704 +Openstack-Request-Id: req-fb8653c1-df69-4de4-af43-1e1e69f91320 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:01.907398+00:00"} -PATCH: /v1/nodes/node-57.1 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"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-97cf8ffb-08a5-46ae-8cbe-35a24141f2e7 +Openstack-Request-Id: req-97cc8893-66a8-4da9-b7d2-0ae7a9816c7f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:02.154148+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api ... ok -ironic.tests.unit.api.controllers.v1.test_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_detail_against_single -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_against_single ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_update_in_inspecting_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_expose.TestExposedAPIMethodsCheckPolicy.test_chasis_api_policy -ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_chasis_api_policy ... 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_node.TestPost.test_create_node_storage_interface_old_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_port.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.TestPost.test_create_node_invalid_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ... ok -ironic.tests.unit.api.controllers.v1.test_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_with_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid ... 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_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_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_port.TestPatch.test_update_pxe_enabled_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many ... 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_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.TestPost.test_post_portgroups_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states ... ok -ironic.tests.unit.api.controllers.v1.test_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_expose.TestExposedAPIMethodsCheckPolicy.test_port_api_policy -ironic.tests.unit.api.controllers.v1.test_expose.TestExposedAPIMethodsCheckPolicy.test_port_api_policy ... 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.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.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.TestAttachDetachVif.test_vif_detach_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.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.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_associated_nodes_error -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_error ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ... ok - -GET: /v1/nodes/detail?resource_class=foo {} -GOT:{'nodes': [{'uuid': '1042e106-04b1-4d99-bc5a-477ae2ebf456', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1042e106-04b1-4d99-bc5a-477ae2ebf456', 'rel': 'self'}, {'href': 'http://localhost/nodes/1042e106-04b1-4d99-bc5a-477ae2ebf456', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1042e106-04b1-4d99-bc5a-477ae2ebf456/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1042e106-04b1-4d99-bc5a-477ae2ebf456/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1042e106-04b1-4d99-bc5a-477ae2ebf456/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1042e106-04b1-4d99-bc5a-477ae2ebf456/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:00.301322+00:00'}]} -GET: /v1/nodes/detail?resource_class=bar {} -GOT:{'nodes': [{'uuid': 'cc5f6361-4fd1-4f74-b102-76fcd3441db5', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'bar', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/cc5f6361-4fd1-4f74-b102-76fcd3441db5', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc5f6361-4fd1-4f74-b102-76fcd3441db5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/cc5f6361-4fd1-4f74-b102-76fcd3441db5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc5f6361-4fd1-4f74-b102-76fcd3441db5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/cc5f6361-4fd1-4f74-b102-76fcd3441db5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc5f6361-4fd1-4f74-b102-76fcd3441db5/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:00.308185+00:00'}]} -GET: /v1/nodes/spam/management/boot_device/supported {} -GOT:{'supported_boot_devices': ['pxe']} -GET: /v1/nodes?sort_key=uuid {} -GOT:{'nodes': [{'uuid': '2c691933-752c-49cd-a079-65da71abe821', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2c691933-752c-49cd-a079-65da71abe821', 'rel': 'self'}, {'href': 'http://localhost/nodes/2c691933-752c-49cd-a079-65da71abe821', 'rel': 'bookmark'}]}, {'uuid': '31530e90-323a-4e63-999f-a4dde8d96fbb', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/31530e90-323a-4e63-999f-a4dde8d96fbb', 'rel': 'self'}, {'href': 'http://localhost/nodes/31530e90-323a-4e63-999f-a4dde8d96fbb', 'rel': 'bookmark'}]}, {'uuid': 'dc23e6e5-7936-42d8-ab60-a0f892c69541', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/dc23e6e5-7936-42d8-ab60-a0f892c69541', 'rel': 'self'}, {'href': 'http://localhost/nodes/dc23e6e5-7936-42d8-ab60-a0f892c69541', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} -GOT:{'targets': [{'uuid': '50c75f22-75e0-44d5-b3ae-085c8088af23', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/50c75f22-75e0-44d5-b3ae-085c8088af23', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/50c75f22-75e0-44d5-b3ae-085c8088af23', 'rel': 'bookmark'}]}, {'uuid': 'fb046149-b72b-4438-bed8-16e2e66bae9e', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/fb046149-b72b-4438-bed8-16e2e66bae9e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/fb046149-b72b-4438-bed8-16e2e66bae9e', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} -GOT:{'targets': [{'uuid': '50c75f22-75e0-44d5-b3ae-085c8088af23', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/50c75f22-75e0-44d5-b3ae-085c8088af23', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/50c75f22-75e0-44d5-b3ae-085c8088af23', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=1&marker=50c75f22-75e0-44d5-b3ae-085c8088af23'} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"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-65f4dcae-e751-4db9-8d67-0f9d7855fc37 +Openstack-Request-Id: req-b7fadff2-07fa-44b7-bb9c-3698a5c8d2d6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:01.754997+00:00"} +X-Openstack-Ironic-Api-Version: 1.25 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2021-12-04T17:53:51.242078+00:00"} 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-4d1499cd-c007-4cbb-b447-8a1f82b3773f +Openstack-Request-Id: req-6aaaee8e-022d-42d7-8365-aca68824ba11 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/power_state', 'op': 'replace', 'value': 'fake-state'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.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 +GET: /v1/chassis/nodes {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ed7664d4-8ecb-4060-a528-899fbac71555 +Openstack-Request-Id: req-a422f06c-7706-40cf-9f02-fd00266a24f8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/power_state' is an internal attribute and can not be updated\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_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_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.TestPatch.test_update_allowed_in_power_transition -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'inspect wait', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2023-01-07T00:10:00.343772+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '2000-01-01T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error', 'raid_config': {'foo': 'bar'}, 'target_raid_config': {'foo': 'bar'}} -GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\", \"debuginfo\": null}"} +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-7b3ee9af-52f4-4fd6-a6e9-224deef5c652 +Openstack-Request-Id: req-0aff5756-fc0a-4870-ad6f-f7c1ea1d27ac X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} -GET: /v1/nodes/volume/targets {} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"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/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-860f3d8a-aeff-4bb2-9b0b-2553a32f08c9 +Openstack-Request-Id: req-048d1501-50b7-41b7-977e-c1659832296f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +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/nope {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-38839457-625e-4d05-9a28-f50ef4fc22e9 +Openstack-Request-Id: req-0942dcc6-8b04-4c6c-a137-66c90939a382 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:01.728671+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/foo +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-de8bcd22-e63c-4b00-8eb6-9804ff80c4a4 +Openstack-Request-Id: req-4bbf56dc-849e-44fe-a07d-a9a738a0c8f8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/driver' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} +X-Openstack-Ironic-Api-Version: 1.5 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} +GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} +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'}], 'network_interface': None} +GET: /v1/nodes?driver=test {} +GOT:{'nodes': []} +GET: /v1/nodes/detail?resource_class=foo {} +GOT:{'nodes': [{'uuid': 'e24f506a-e255-4e56-8d10-b0bf4df0a1a0', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0', 'rel': 'self'}, {'href': 'http://localhost/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e24f506a-e255-4e56-8d10-b0bf4df0a1a0/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.588150+00:00'}]} +GET: /v1/nodes/detail?resource_class=bar {} +GOT:{'nodes': [{'uuid': 'a4ce0b59-841c-4ed3-9587-1c873b50e9f5', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'bar', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4ce0b59-841c-4ed3-9587-1c873b50e9f5/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.594696+00:00'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +GOT:{'ports': [{'uuid': '9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'rel': 'self'}, {'href': 'http://localhost/ports/9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'rel': 'bookmark'}]}, {'uuid': '363aea6d-b711-4e07-a1c5-d42c5a1178f6', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/363aea6d-b711-4e07-a1c5-d42c5a1178f6', 'rel': 'self'}, {'href': 'http://localhost/ports/363aea6d-b711-4e07-a1c5-d42c5a1178f6', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} +GOT:{'ports': [{'uuid': '9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'rel': 'self'}, {'href': 'http://localhost/ports/9307e7d0-ae88-4e5f-b7d0-98f8e70206d3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=1&marker=9307e7d0-ae88-4e5f-b7d0-98f8e70206d3'} +GET: /v1/nodes?sort_key=resource_class {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-e5cae930-90e5-4121-b2cf-ab2529085adc +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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&limit=2 {} +GOT:{'nodes': [{'uuid': '8b95d026-a1ae-4efd-acb2-222378c0e6b9', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8b95d026-a1ae-4efd-acb2-222378c0e6b9', 'rel': 'self'}, {'href': 'http://localhost/nodes/8b95d026-a1ae-4efd-acb2-222378c0e6b9', 'rel': 'bookmark'}]}, {'uuid': 'eec67e6a-d512-414f-b879-b68bf03d92c4', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/eec67e6a-d512-414f-b879-b68bf03d92c4', 'rel': 'self'}, {'href': 'http://localhost/nodes/eec67e6a-d512-414f-b879-b68bf03d92c4', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=2&marker=eec67e6a-d512-414f-b879-b68bf03d92c4'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_both_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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.TestPatch.test_update_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported ... ok + PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7df4ee17-3cd1-4b49-9279-585fe412f07c +Openstack-Request-Id: req-affeea80-6b3c-4898-8125-4998a4fd19eb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] +PATCH: /v1/nodes/0d163bbf-bb5b-49e9-b52e-9bc25a3c9adc [{'path': '/instance_uuid', 'op': 'remove'}] +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Request-Id: req-2399af7f-340d-40af-84dc-a0ecf25a7dec +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.39 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"0d163bbf-bb5b-49e9-b52e-9bc25a3c9adc\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} +PATCH: /v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-b424c026-12ac-4595-9181-7baecd5e8d34 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "3ea832e1-52a8-4386-b985-53fcb92e4db9", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9", "rel": "self"}, {"href": "http://localhost/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/ports", "rel": "self"}, {"href": "http://localhost/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/volume", "rel": "self"}, {"href": "http://localhost/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/states", "rel": "self"}, {"href": "http://localhost/nodes/3ea832e1-52a8-4386-b985-53fcb92e4db9/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:50.903699+00:00"} +POST: /v1/nodes {'name': None, '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, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-a13b14ae-03d4-4c42-b283-0c82c97ee391 +Openstack-Request-Id: req-897b0896-cc98-4139-86ff-c182e88e5e3d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'bios_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 400 Bad Request +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-4aa6609b-eb4f-4afc-b7a5-7a0ded52b1d5 +Openstack-Request-Id: req-3bd23e1c-54bd-4ba2-9cb4-2c811406dfcc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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 - -PATCH: /v1/nodes/fc15129b-7e89-4d03-9259-ca4f1f27396e [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-b010e10e-fe7c-458c-9880-75bee9d1bb20 +Openstack-Request-Id: req-77427eb5-13b3-4560-8019-90dce98b0f1f X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/fc15129b-7e89-4d03-9259-ca4f1f27396e [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-c6486523-d9f5-4f17-bb03-b159f05e7c4a +Openstack-Request-Id: req-ca584671-64c8-454e-b921-a5b08e16c897 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] -GOT:Response: 200 OK +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-510a8ae6-d769-4d39-b221-f13328df7171 +Openstack-Request-Id: req-42e77737-7f11-4e13-894f-b4988c6c041a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2023-01-07T00:10:01.580320+00:00"} -PATCH: /v1/nodes/node-57.1.json [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_port.TestListPorts.test_detail_using_query_and_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name ... ok +ironic.tests.unit.api.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 + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} +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'}], 'storage_interface': None} +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': '0ab58748-9472-4f65-80a6-dbc3bf1558b3', 'instance_uuid': None, 'name': 'node-0', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0ab58748-9472-4f65-80a6-dbc3bf1558b3', 'rel': 'self'}, {'href': 'http://localhost/nodes/0ab58748-9472-4f65-80a6-dbc3bf1558b3', 'rel': 'bookmark'}]}, {'uuid': '9b3ed629-ccf3-4650-83e5-cebe6fa32e9b', 'instance_uuid': None, 'name': 'node-1', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9b3ed629-ccf3-4650-83e5-cebe6fa32e9b', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b3ed629-ccf3-4650-83e5-cebe6fa32e9b', 'rel': 'bookmark'}]}, {'uuid': '3ab74555-1820-4bd1-bac0-4925ebd39dca', 'instance_uuid': None, 'name': 'node-2', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3ab74555-1820-4bd1-bac0-4925ebd39dca', 'rel': 'self'}, {'href': 'http://localhost/nodes/3ab74555-1820-4bd1-bac0-4925ebd39dca', 'rel': 'bookmark'}]}, {'uuid': '6cb12896-d637-4c5c-ab68-62b378b31a7c', 'instance_uuid': None, 'name': 'node-3', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6cb12896-d637-4c5c-ab68-62b378b31a7c', 'rel': 'self'}, {'href': 'http://localhost/nodes/6cb12896-d637-4c5c-ab68-62b378b31a7c', 'rel': 'bookmark'}]}, {'uuid': 'a95e091d-ec87-4e23-872c-d435522ca2bd', 'instance_uuid': None, 'name': 'node-4', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a95e091d-ec87-4e23-872c-d435522ca2bd', 'rel': 'self'}, {'href': 'http://localhost/nodes/a95e091d-ec87-4e23-872c-d435522ca2bd', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.372301+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.372301+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.669687+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.TestListNodes.test_sort_key +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key ... ok +GET: /v1/chassis/?limit=3 {} +GOT:{'chassis': [{'uuid': '43890044-02b6-480f-b22a-ec5876511f2c', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/43890044-02b6-480f-b22a-ec5876511f2c', 'rel': 'self'}, {'href': 'http://localhost/chassis/43890044-02b6-480f-b22a-ec5876511f2c', 'rel': 'bookmark'}]}, {'uuid': '928c5802-e15d-4006-94f2-8cb08272f5de', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/928c5802-e15d-4006-94f2-8cb08272f5de', 'rel': 'self'}, {'href': 'http://localhost/chassis/928c5802-e15d-4006-94f2-8cb08272f5de', 'rel': 'bookmark'}]}, {'uuid': '9dadef7c-b8a5-42eb-92ea-1c0913bce044', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/9dadef7c-b8a5-42eb-92ea-1c0913bce044', 'rel': 'self'}, {'href': 'http://localhost/chassis/9dadef7c-b8a5-42eb-92ea-1c0913bce044', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&limit=3&marker=9dadef7c-b8a5-42eb-92ea-1c0913bce044'} +GET: /v1/drivers/driver/properties {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e9280287-4c4c-4631-8298-2d12f295b161 +Openstack-Request-Id: req-4eb4e808-21bb-44a8-88a1-00214abe6c92 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2023-01-07T00:10:01.906799+00:00"} -PATCH: /v1/nodes/2a713648-f7e0-4461-a3ce-a7ca0cdf6b61 [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] +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?type=working {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-78b8117f-679f-4c8c-9fdb-dca8585fa181 +Openstack-Request-Id: req-d8d072e2-8674-4f66-bf46-e63d374b914c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node traits via node patch. Node traits should be updated via the node traits API.\", \"debuginfo\": null}"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +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 {} +GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host1', 'fake-host2'], 'type': 'dynamic', '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'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', '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'}]}]} +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/nodes?instance_uuid=2bfd5473-a336-43df-81c2-a38b0994c32a {} +GOT:{'nodes': [{'uuid': 'c5004cd5-b7cf-4e14-bd71-94fcfc95ed81', 'instance_uuid': '2bfd5473-a336-43df-81c2-a38b0994c32a', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c5004cd5-b7cf-4e14-bd71-94fcfc95ed81', 'rel': 'self'}, {'href': 'http://localhost/nodes/c5004cd5-b7cf-4e14-bd71-94fcfc95ed81', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:50.943825+00:00'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-c51511ef-10f6-4e26-ab3b-d59cd94d0284 +Openstack-Request-Id: req-4e6bb266-4710-4873-9c7d-f400ed8134d2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.11 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:02.600792+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:02.600792+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ... ok -ironic.tests.unit.api.controllers.v1.test_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 -GET: /v1/chassis {} -GOT:{'chassis': []} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes?driver=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-331c590a-e98d-45a7-b393-e7d046c0bfe8 +Openstack-Request-Id: req-f402844b-e703-4bfe-bac9-98e94dabbbe9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] +{"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:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-ea956de0-8f27-4bfe-8cb3-784942284ca3 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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-5b165a84-16a3-4197-a6a6-a5575d326418 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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}"}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step ... ok +ironic.tests.unit.api.controllers.v1.test_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/chassis?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-127ccc7b-da5d-4b28-aae9-4d4ad9f4d404 +Openstack-Request-Id: req-5b04b045-a4b8-4dc9-bfea-731790c348ef X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} -PATCH: /v1/chassis/1e16490c-a4dd-4422-bcef-473acd8f804a [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} +GET: /v1/chassis {} +GOT:{'chassis': []} +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=foo {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d5f0b7f3-1f2a-4ca4-8c9d-07a418c9de9c +Openstack-Request-Id: req-6a2318ff-ac56-4a85-9b95-c3d4cb95bc3d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1e16490c-a4dd-4422-bcef-473acd8f804a could not be found.\", \"debuginfo\": null}"} -POST: /v1/chassis {'extra': {}, 'description': 'data-center-1-chassis'} -GOT:Response: 201 Created +{"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 -Location: http://localhost/v1/chassis/028fa21a-1b87-48dc-bf5a-d61ccf4467e8 -Openstack-Request-Id: req-ca9666ae-2a4d-49a6-a62a-cb64d9233fb3 +Openstack-Request-Id: req-e0156deb-3f93-424f-93b7-46787134b527 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "028fa21a-1b87-48dc-bf5a-d61ccf4467e8", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/028fa21a-1b87-48dc-bf5a-d61ccf4467e8", "rel": "self"}, {"href": "http://localhost/chassis/028fa21a-1b87-48dc-bf5a-d61ccf4467e8", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/028fa21a-1b87-48dc-bf5a-d61ccf4467e8/nodes", "rel": "self"}, {"href": "http://localhost/chassis/028fa21a-1b87-48dc-bf5a-d61ccf4467e8/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:00.575373+00:00"} -GET: /v1/chassis {} -GOT:{'chassis': [{'uuid': '028fa21a-1b87-48dc-bf5a-d61ccf4467e8', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/028fa21a-1b87-48dc-bf5a-d61ccf4467e8', 'rel': 'self'}, {'href': 'http://localhost/chassis/028fa21a-1b87-48dc-bf5a-d61ccf4467e8', 'rel': 'bookmark'}]}]} -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'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} +PATCH: /v1/chassis/a2d8e7a2-6cbe-495f-9116-3fba2de0dbdd [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-a1a5854b-7f50-4a45-9113-5c035709c954 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis a2d8e7a2-6cbe-495f-9116-3fba2de0dbdd could not be found.\", \"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-0b3ef41e-4140-4a6f-a06c-e8c26d9bbfac +Openstack-Request-Id: req-eb15f84d-a65f-4c35-b5d3-56415bf2a83e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": null, "created_at": "2023-01-07T00:10:00.822308+00:00"} +{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} -GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:00.822308+00:00'} -GET: /v1/drivers/manual-management/properties {} -GOT:{'prop1': 'Property 1. Required.'} -GET: /v1/drivers?type=classic {} -GOT:{'drivers': []} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +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/fake-hardware-type/raid/logical_disk_properties {} -GOT:{'foo': 'description of foo'} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': 'aaf10c17-8704-4a25-bf19-084508470aa7'} -GOT:Response: 400 Bad Request +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-12539b5b-4a6b-41c1-9671-363b7648653e +Openstack-Request-Id: req-63ba5f37-cd04-4325-a253-67a849f55ee8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: id\", \"debuginfo\": null}"} -DELETE: /v1/nodes/foo -GOT:Response: 404 Not Found +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/virtualization {} +GOT:{'virtualization': {'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'}], 'created_at': '2021-12-04T17:53:50.315942+00:00', 'updated_at': None}} +GET: /v1/nodes/detail?sort_key=resource_class {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-ea303a10-e488-436a-8aeb-5bec70a681bc +Openstack-Request-Id: req-4893419e-ee1b-46ed-8b68-bc696f76b217 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -GET: /v1/nodes?detail=True&fields=name {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.20 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes?conductor_group=group1 {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-e05a6f70-8b91-4b78-b9ee-e18db4d8b991 +Openstack-Request-Id: req-f02656ce-1917-4087-bf9a-8dafc7dab2a9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} -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:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} -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'}], 'traits': []} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:03.117241+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields ... ok - -PATCH: /v1/nodes/fd3227a7-b6fa-41e5-858d-f34b8b76d23b [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.45 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} +GET: /v1/nodes/detail?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-734664ba-a530-485d-b95d-509af22987af +Openstack-Request-Id: req-9165048a-c93e-4048-9fd4-e3d702b8bd31 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'bad-driver', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} +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/test.1 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'test.1', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:51.274463+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_interface_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface ... ok +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5c1cf038-6aca-4cb6-87cd-f117913f70f0 +Openstack-Request-Id: req-d73e9078-a97f-4665-9bb2-4788c960b107 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/8cb0f907-a76b-4875-a826-a4103c461396 [{'path': '/instance_uuid', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-e5a18471-5ba9-462e-9fcc-17dc08c46996 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -{"uuid": "8cb0f907-a76b-4875-a826-a4103c461396", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/8cb0f907-a76b-4875-a826-a4103c461396", "rel": "self"}, {"href": "http://localhost/nodes/8cb0f907-a76b-4875-a826-a4103c461396", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8cb0f907-a76b-4875-a826-a4103c461396/ports", "rel": "self"}, {"href": "http://localhost/nodes/8cb0f907-a76b-4875-a826-a4103c461396/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8cb0f907-a76b-4875-a826-a4103c461396/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8cb0f907-a76b-4875-a826-a4103c461396/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8cb0f907-a76b-4875-a826-a4103c461396/volume", "rel": "self"}, {"href": "http://localhost/nodes/8cb0f907-a76b-4875-a826-a4103c461396/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8cb0f907-a76b-4875-a826-a4103c461396/states", "rel": "self"}, {"href": "http://localhost/nodes/8cb0f907-a76b-4875-a826-a4103c461396/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "updated_at": null, "created_at": "2023-01-07T00:10:02.912234+00:00"} -PATCH: /v1/nodes/cf0a7199-0550-4b25-880d-9b2e2eb3f0c0 [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\", \"debuginfo\": null}"} +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-1b8b341c-89b5-4e6d-a720-8f2da0603942 +Openstack-Request-Id: req-96281740-ea3e-48d5-a581-c11a21a47609 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.21 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute resource_class. Value: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'. Value should have a maximum character requirement of 80\", \"debuginfo\": null}"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} +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'}]} +GET: /v1/drivers?type=classic {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-657e0405-c01e-44f1-8ed7-a60ca45cf04b +Openstack-Request-Id: req-65193f41-8fab-4b48-be72-07f7434f295c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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"}}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:03.488732+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, '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'}}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:03.488732+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_instance_info -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_instance_info ... 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_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_node.TestPut.test_clean -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ... 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_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_valid_timeout_no_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. - -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-0c60d76a-fc27-4779-a1ba-0e9f368b32db +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/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'}]} +POST: /v1/nodes/node-39/vifs {'id': '35149bd3-9b5a-419e-b594-0afa5cd86a53'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-b5e95716-ec08-4e3c-afed-a76fd2bea52c X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/f69e30c2-6c4a-44d8-a5f1-55f9008e891a [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.28 + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} +GOT:{'bios': [{'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'}], 'created_at': '2021-12-04T17:53:50.107263+00:00', 'updated_at': None}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-5311dcc2-bfac-469c-a02e-38ad0614ee9f +Openstack-Request-Id: req-fe5541bf-b6c4-4612-9a30-03ee475792a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "f69e30c2-6c4a-44d8-a5f1-55f9008e891a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/f69e30c2-6c4a-44d8-a5f1-55f9008e891a", "rel": "self"}, {"href": "http://localhost/nodes/f69e30c2-6c4a-44d8-a5f1-55f9008e891a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f69e30c2-6c4a-44d8-a5f1-55f9008e891a/ports", "rel": "self"}, {"href": "http://localhost/nodes/f69e30c2-6c4a-44d8-a5f1-55f9008e891a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f69e30c2-6c4a-44d8-a5f1-55f9008e891a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f69e30c2-6c4a-44d8-a5f1-55f9008e891a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f69e30c2-6c4a-44d8-a5f1-55f9008e891a/volume", "rel": "self"}, {"href": "http://localhost/nodes/f69e30c2-6c4a-44d8-a5f1-55f9008e891a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f69e30c2-6c4a-44d8-a5f1-55f9008e891a/states", "rel": "self"}, {"href": "http://localhost/nodes/f69e30c2-6c4a-44d8-a5f1-55f9008e891a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:02.235533+00:00"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': None} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.45 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.522895+00:00'}]} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:50.522895+00:00'}]} +GET: /v1/nodes?instance_uuid=fake {} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-47ebe0f6-e1b6-424c-9126-276cd0c56560 +Openstack-Request-Id: req-6f780048-06fa-4055-a552-9c350fe35747 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '4cd66f55-9245-4425-a8e8-cb88b50a4d25', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute instance_uuid. Value: 'fake'. unable to convert to uuid. Error: Expected a UUID but received fake.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/4cd66f55-9245-4425-a8e8-cb88b50a4d25 -Openstack-Request-Id: req-503a6809-4e99-433c-911d-0ab1a571f9e2 +Openstack-Request-Id: req-475398cd-4b08-4f80-988a-70a208474391 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "4cd66f55-9245-4425-a8e8-cb88b50a4d25", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/4cd66f55-9245-4425-a8e8-cb88b50a4d25", "rel": "self"}, {"href": "http://localhost/nodes/4cd66f55-9245-4425-a8e8-cb88b50a4d25", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/4cd66f55-9245-4425-a8e8-cb88b50a4d25/ports", "rel": "self"}, {"href": "http://localhost/nodes/4cd66f55-9245-4425-a8e8-cb88b50a4d25/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/4cd66f55-9245-4425-a8e8-cb88b50a4d25 {} -GOT:{'uuid': '4cd66f55-9245-4425-a8e8-cb88b50a4d25', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/4cd66f55-9245-4425-a8e8-cb88b50a4d25', 'rel': 'self'}, {'href': 'http://localhost/nodes/4cd66f55-9245-4425-a8e8-cb88b50a4d25', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/4cd66f55-9245-4425-a8e8-cb88b50a4d25/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4cd66f55-9245-4425-a8e8-cb88b50a4d25/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'}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_node.TestPost.test_create_node_explicit_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface ... ok +X-Openstack-Ironic-Api-Version: 1.5 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name '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'}]ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_node.TestPut.test_provision_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_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_node.TestPut.test_provision_unexpected_rescue_password +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_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_port.TestListPorts.test_get_custom_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_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_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_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_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_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 -PATCH: /v1/nodes/60b50f03-9a4e-44ff-8687-807837071ac1 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, '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/volume/connectors {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a9d362c5-55f3-4bfa-8dbc-fa4aca87b2b1 +Openstack-Request-Id: req-a78f4411-b417-46df-a57e-d1fec7bb1007 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-798094f7-4e71-4f91-bd2d-313ee80aaa3d +Openstack-Request-Id: req-f8d8c553-9d71-46ca-bc9b-c997ca7bc7c3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:51.377602+00:00"} +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-72ce1e45-ef34-41b1-b655-9ead90506d2c +Openstack-Request-Id: req-0ac8c8dc-bb35-40e2-b0ba-622db8ee4305 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:51.611001+00:00"} +PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'guido-van-rossum'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-b86123d0-2a9e-40ae-b2b9-dbb0c4c56228 +Openstack-Request-Id: req-20065d85-7d38-4460-afb0-f58ec366acac X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:03.431093+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:03.431093+00:00'} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "deadbeef-0000-1111-2222-333333333333", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "bookmark"}], "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"}], "updated_at": null, "created_at": "2021-12-04T17:53:51.901558+00:00"} +PATCH: /v1/nodes/a84478ad-d454-491c-8715-795ed8b09e3f [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-88b1852f-3098-41d7-803a-f727e9d7abad +Openstack-Request-Id: req-8047c2c1-7be7-413d-ad9d-c319fa3309a9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_status_code ... ok -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/detail {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.44 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/deploy_step' is an internal attribute and can not be updated\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f36b5857-c377-40be-a4f9-2a4502a104a4 +Openstack-Request-Id: req-c0beffd4-1192-41f8-b7ba-66ad21b0bc0d X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {} -GOT:{'chassis': [{'uuid': 'ba9fb16f-d9da-4fc7-a517-88383120b40a', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ba9fb16f-d9da-4fc7-a517-88383120b40a', 'rel': 'self'}, {'href': 'http://localhost/chassis/ba9fb16f-d9da-4fc7-a517-88383120b40a', 'rel': 'bookmark'}]}, {'uuid': 'eb634199-27a7-4593-b82a-a889c7fcf313', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/eb634199-27a7-4593-b82a-a889c7fcf313', 'rel': 'self'}, {'href': 'http://localhost/chassis/eb634199-27a7-4593-b82a-a889c7fcf313', 'rel': 'bookmark'}]}, {'uuid': '44800d30-01d3-4b37-8965-2de19a0f22aa', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/44800d30-01d3-4b37-8965-2de19a0f22aa', 'rel': 'self'}, {'href': 'http://localhost/chassis/44800d30-01d3-4b37-8965-2de19a0f22aa', 'rel': 'bookmark'}]}, {'uuid': 'c82a6fb1-31e8-49e1-98da-09e668c83145', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c82a6fb1-31e8-49e1-98da-09e668c83145', 'rel': 'self'}, {'href': 'http://localhost/chassis/c82a6fb1-31e8-49e1-98da-09e668c83145', 'rel': 'bookmark'}]}, {'uuid': '0dda4287-219a-4247-8b70-06782c41c3ae', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/0dda4287-219a-4247-8b70-06782c41c3ae', 'rel': 'self'}, {'href': 'http://localhost/chassis/0dda4287-219a-4247-8b70-06782c41c3ae', 'rel': 'bookmark'}]}]} -PATCH: /v1/chassis/aa9b7c66-96c2-4a7f-91a3-6798c088262a [{'path': '/description', 'op': 'remove'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:52.338618+00:00"} +PATCH: /v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf [{'path': '/network_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-59830c08-67bb-430b-b7e0-38156386e301 +Openstack-Request-Id: req-0e81696c-b057-4135-93e5-7eca290e8bb4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "aa9b7c66-96c2-4a7f-91a3-6798c088262a", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/aa9b7c66-96c2-4a7f-91a3-6798c088262a", "rel": "self"}, {"href": "http://localhost/chassis/aa9b7c66-96c2-4a7f-91a3-6798c088262a", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/aa9b7c66-96c2-4a7f-91a3-6798c088262a/nodes", "rel": "self"}, {"href": "http://localhost/chassis/aa9b7c66-96c2-4a7f-91a3-6798c088262a/nodes", "rel": "bookmark"}], "updated_at": "2023-01-07T00:10:01.652871+00:00", "created_at": "2023-01-07T00:10:01.540355+00:00"} -GET: /v1/chassis/aa9b7c66-96c2-4a7f-91a3-6798c088262a {} -GOT:{'uuid': 'aa9b7c66-96c2-4a7f-91a3-6798c088262a', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/aa9b7c66-96c2-4a7f-91a3-6798c088262a', 'rel': 'self'}, {'href': 'http://localhost/chassis/aa9b7c66-96c2-4a7f-91a3-6798c088262a', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/aa9b7c66-96c2-4a7f-91a3-6798c088262a/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/aa9b7c66-96c2-4a7f-91a3-6798c088262a/nodes', 'rel': 'bookmark'}], 'updated_at': '2023-01-07T00:10:01.652871+00:00', 'created_at': '2023-01-07T00:10:01.540355+00:00'} -GET: /v1/drivers/driver/properties {} +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "326b3253-7456-45be-b46a-35772d9ceabf", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf", "rel": "self"}, {"href": "http://localhost/nodes/326b3253-7456-45be-b46a-35772d9ceabf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf/ports", "rel": "self"}, {"href": "http://localhost/nodes/326b3253-7456-45be-b46a-35772d9ceabf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/326b3253-7456-45be-b46a-35772d9ceabf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf/volume", "rel": "self"}, {"href": "http://localhost/nodes/326b3253-7456-45be-b46a-35772d9ceabf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/326b3253-7456-45be-b46a-35772d9ceabf/states", "rel": "self"}, {"href": "http://localhost/nodes/326b3253-7456-45be-b46a-35772d9ceabf/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:53.126164+00:00"}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.TestPatch.test_update_fails_bad_driver +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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 +GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-58f337dd-7e22-4491-9689-61269af13b19 +Openstack-Request-Id: req-561ee295-5953-430f-a36f-b87085e05b32 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -PUT: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} -GOT:Response: 202 Accepted +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"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'], 'type': 'dynamic', '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'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', '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'}]}]} +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/raid/logical_disk_properties {} +GOT:{'foo': 'description of foo'} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': '3e4e7574-794f-415c-ae21-3c2894ec088e'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8b280da9-4a79-43c4-a2c3-988a46d04101 +Openstack-Request-Id: req-377923f9-22a6-42da-a977-36b528c10486 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -null -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-a965e010-be5e-499b-b9bd-3434847c185e +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: id\", \"debuginfo\": null}"} +DELETE: /v1/nodes/foo.1 +GOT:Response: 204 No Content +Openstack-Request-Id: req-cf73236d-77d3-49e3-aaa6-586065c0e0eb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\", \"debuginfo\": null}"} +X-Openstack-Ironic-Api-Version: 1.5 + GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': 'f33b7ebd-1dd9-47f7-b379-061f19056cc2', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f33b7ebd-1dd9-47f7-b379-061f19056cc2', 'rel': 'self'}, {'href': 'http://localhost/nodes/f33b7ebd-1dd9-47f7-b379-061f19056cc2', 'rel': 'bookmark'}]}, {'uuid': '60575628-86d9-469b-9666-0d3e27ca621b', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/60575628-86d9-469b-9666-0d3e27ca621b', 'rel': 'self'}, {'href': 'http://localhost/nodes/60575628-86d9-469b-9666-0d3e27ca621b', 'rel': 'bookmark'}]}, {'uuid': '314d4b07-0611-4bb7-b6c2-41f2937894cc', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/314d4b07-0611-4bb7-b6c2-41f2937894cc', 'rel': 'self'}, {'href': 'http://localhost/nodes/314d4b07-0611-4bb7-b6c2-41f2937894cc', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=314d4b07-0611-4bb7-b6c2-41f2937894cc'} +GOT:{'nodes': [{'uuid': '50c0d80a-7ae0-4758-9add-5f9b5d163c86', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/50c0d80a-7ae0-4758-9add-5f9b5d163c86', 'rel': 'self'}, {'href': 'http://localhost/nodes/50c0d80a-7ae0-4758-9add-5f9b5d163c86', 'rel': 'bookmark'}]}, {'uuid': '7444ce43-3360-4ca9-a2bf-f4062078ecc0', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7444ce43-3360-4ca9-a2bf-f4062078ecc0', 'rel': 'self'}, {'href': 'http://localhost/nodes/7444ce43-3360-4ca9-a2bf-f4062078ecc0', 'rel': 'bookmark'}]}, {'uuid': 'dfb9c0e7-ab63-4532-9f9d-ec93343a2828', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/dfb9c0e7-ab63-4532-9f9d-ec93343a2828', 'rel': 'self'}, {'href': 'http://localhost/nodes/dfb9c0e7-ab63-4532-9f9d-ec93343a2828', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=dfb9c0e7-ab63-4532-9f9d-ec93343a2828'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} -GET: /v1/nodes?fault=power failure {} -GOT:{'nodes': [{'uuid': 'a20c3c20-8443-4516-aa04-d3c974b30bb0', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0', 'rel': 'self'}, {'href': 'http://localhost/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?fault=clean failure {} -GOT:{'nodes': [{'uuid': '2e30a1d1-79d2-4d0b-ad1a-a4355c17815e', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?fault=power failure {} -GOT:{'nodes': [{'uuid': 'a20c3c20-8443-4516-aa04-d3c974b30bb0', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': 'power failure', 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0', 'rel': 'self'}, {'href': 'http://localhost/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a20c3c20-8443-4516-aa04-d3c974b30bb0/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:03.930278+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class_detail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_node.TestPut.test_provision_with_cleansteps_not_clean -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean ... ok -ironic.tests.unit.api.controllers.v1.test_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_hide_fields_in_newer_versions_clean_step -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step ... ok -ironic.tests.unit.api.controllers.v1.test_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_node.TestTraits.test_delete_trait_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names ... 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_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_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_port.TestListPorts.test_detail_using_query_old_version -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id ... ok -GET: /v1/chassis?fields=uuid,extra {} -GOT:{'chassis': [{'uuid': 'aec3a80b-d6b8-4eca-b46c-84c0c41931b0', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/aec3a80b-d6b8-4eca-b46c-84c0c41931b0', 'rel': 'self'}, {'href': 'http://localhost/chassis/aec3a80b-d6b8-4eca-b46c-84c0c41931b0', 'rel': 'bookmark'}]}, {'uuid': '7f219302-e081-4a54-b4dd-b9c538712567', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/7f219302-e081-4a54-b4dd-b9c538712567', 'rel': 'self'}, {'href': 'http://localhost/chassis/7f219302-e081-4a54-b4dd-b9c538712567', 'rel': 'bookmark'}]}, {'uuid': '982571d6-d1a4-45b2-a227-158ab75850af', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/982571d6-d1a4-45b2-a227-158ab75850af', 'rel': 'self'}, {'href': 'http://localhost/chassis/982571d6-d1a4-45b2-a227-158ab75850af', 'rel': 'bookmark'}]}]} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} -GOT:Response: 400 Bad Request +GOT:{'console_enabled': False, 'console_info': None} +GET: /v1/nodes?conductor_group=group1 {} +GOT:{'nodes': [{'uuid': '31aa8127-8ddc-4f05-b912-5d563e73e223', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?conductor_group=group2 {} +GOT:{'nodes': [{'uuid': '02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?conductor_group=group1 {} +GOT:{'nodes': [{'uuid': '31aa8127-8ddc-4f05-b912-5d563e73e223', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/31aa8127-8ddc-4f05-b912-5d563e73e223/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': 'group1', 'updated_at': None, 'created_at': '2021-12-04T17:53:52.297438+00:00'}]} +GET: /v1/nodes/detail?conductor_group=group2 {} +GOT:{'nodes': [{'uuid': '02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/02743ed5-5f8f-44d9-bc90-9c28dad6b3a9/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': 'group2', 'updated_at': None, 'created_at': '2021-12-04T17:53:52.302126+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ... 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 + +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-6fb98fb5-0351-4b7e-bb28-bd0a1caf1db4 +Openstack-Request-Id: req-c70096d2-70fe-44d3-9da3-f789890a2db2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute description. Value: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'. Value should have a maximum character requirement of 255\", \"debuginfo\": null}"} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'type': 'dynamic', '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'}], 'default_boot_interface': None, 'default_console_interface': None, 'default_deploy_interface': 'direct', 'default_inspect_interface': None, 'default_management_interface': None, 'default_network_interface': None, 'default_power_interface': None, 'default_raid_interface': None, 'default_vendor_interface': None, 'enabled_boot_interfaces': [], 'enabled_console_interfaces': [], 'enabled_deploy_interfaces': ['iscsi', 'direct'], 'enabled_inspect_interfaces': [], 'enabled_management_interfaces': [], 'enabled_network_interfaces': [], 'enabled_power_interfaces': [], 'enabled_raid_interfaces': [], 'enabled_vendor_interfaces': []} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} -GET: /drivers/fake-hardware-type {} -GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} -GET: /v1/drivers/fake-hardware-type/properties {} +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/nodes/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{} -GET: /drivers/fake-hardware-type/properties {} -GET: /v1/drivers {} -GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'type': 'dynamic', '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'}]}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'type': 'dynamic', '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'}]}]} -GET: /v1/drivers/fake-hardware-type {} -GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} -GET: /drivers/fake-hardware-type {} -GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} -GET: /v1/drivers/fake-hardware-type-2 {} -GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} -GET: /drivers/fake-hardware-type-2 {} -GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'invalid%id^'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +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-b04814b5-226b-4c7d-99ae-9acafc555e66 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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}"} +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-e7929a8a-187a-49d4-9680-4e244e0112df +Openstack-Request-Id: req-bed9610b-8ea6-4657-8f92-df501edc7a1e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received invalid%id^.\", \"debuginfo\": null}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '816bf6ab-0035-492e-a664-24514ee1e350'} -GOT:Response: 409 Conflict +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/2f4ec1b5-09b6-4dbe-87bd-4ff714a794ed [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6c780eb0-b5b3-419e-a5fa-c6a259bebe9c +Openstack-Request-Id: req-69418b38-bbd8-489c-b388-edd26cfef200 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'bc758748-81a8-4100-ae71-807b500a962b'} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.15 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-5f5681e0-a823-4a67-883d-7e883bd8711f +Openstack-Request-Id: req-1f6cb3f7-1428-4439-8839-2ae8d9e3b291 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 204 No Content -Openstack-Request-Id: req-dfd7671e-0c7d-492d-8f0b-58d41c458a1a +X-Openstack-Ironic-Api-Version: 1.46 +{"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 {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-85841c4c-4b1b-46ce-9a23-9979e02ebb6c +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-26384bc0-a3e5-48ba-9c50-a27a9e7c264a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/detail {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_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, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-d0e69193-3217-4af7-8758-956ac034d679 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-868b8466-cefd-4cb1-a1cc-c003e0cbefea X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/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?fault=power failure {} -GOT:Response: 406 Not Acceptable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.639070+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.639070+00:00'}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_node.TestPost.test_post_portgroups_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_node.TestPut.test_provision_with_deploy +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.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_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.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_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_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.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_port.TestPatch.test_replace_portgroup_uuid_old_api +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id_deprecated +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id_deprecated ... ok + +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'}]} +POST: /v1/nodes/doesntexist/vifs {'id': '89bf8b62-2b28-442c-984e-2999973eb8c4'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bf8d6e5b-97d5-4071-a182-6b68d0f2aecd +Openstack-Request-Id: req-8e2270f3-ecea-43eb-bb41-624c6fb3b14b X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one ... 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 -GET: /v1/chassis?sort_key=foo {} +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes?associated=blah {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-688dede2-c9ab-4bc3-93a4-76161124466f +Openstack-Request-Id: req-d6665a4b-3b21-4161-934c-98ea3d4cb60d X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute associated. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} +GET: /v1/nodes?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6f695598-8dc7-4dfc-8406-ccbbe3d3e582 +Openstack-Request-Id: req-e6a68447-427c-4fc8-bc6b-7089b409a055 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/drivers?type=classic {} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} +GET: /v1/nodes?fault=somefake {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1e06553a-6c36-4611-8bbf-328e9085fd9e +Openstack-Request-Id: req-321439d1-3169-412d-9968-cf9da81a5c72 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -POST: /v1/nodes/node-39/vifs {'id': 'b8fc5be6-e067-4e01-9d6b-50123bd6233b'} +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-24eb8d71-56ac-4907-a28b-1a0b39ae15ea +Openstack-Request-Id: req-753dfc8e-b2c1-4191-8a5f-04513c96325d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} -GOT:Response: 404 Not Found +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?provision_state=test {} +GOT:Response: 400 Bad Request Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance -GOT:Response: 202 Accepted -Openstack-Request-Id: req-b52042b7-a25c-4cfb-844b-406a5cf459da +Openstack-Request-Id: req-18dbe06e-079c-46ce-b060-6c24499eb346 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.9 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\", \"debuginfo\": null}"} +GET: /v1/nodes?provision_state=test {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-2b8b3271-1af5-4699-a602-bc5245c7d72f +Openstack-Request-Id: req-a015479e-3300-4d42-9309-530a78e476bb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -GET: /v1/nodes?detail=True {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:10:01.177867+00:00'}]} -GET: /v1/nodes?provision_state=available {} -GOT:{'nodes': [{'uuid': '7d56e5a6-739a-4e7d-b25b-908645a98618', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7d56e5a6-739a-4e7d-b25b-908645a98618', 'rel': 'self'}, {'href': 'http://localhost/nodes/7d56e5a6-739a-4e7d-b25b-908645a98618', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?provision_state=deploying {} -GOT:{'nodes': [{'uuid': 'ef4e4949-3e1a-4518-94bf-66bc945d84c3', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'deploying', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ef4e4949-3e1a-4518-94bf-66bc945d84c3', 'rel': 'self'}, {'href': 'http://localhost/nodes/ef4e4949-3e1a-4518-94bf-66bc945d84c3', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?resource_class=foo {} -GOT:{'nodes': [{'uuid': '58c73912-92d5-4345-b6d1-00de1adc7c50', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/58c73912-92d5-4345-b6d1-00de1adc7c50', 'rel': 'self'}, {'href': 'http://localhost/nodes/58c73912-92d5-4345-b6d1-00de1adc7c50', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?resource_class=bar {} -GOT:{'nodes': [{'uuid': '0d7ae3e6-8004-4f35-bec3-987fcfdf30e5', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0d7ae3e6-8004-4f35-bec3-987fcfdf30e5', 'rel': 'self'}, {'href': 'http://localhost/nodes/0d7ae3e6-8004-4f35-bec3-987fcfdf30e5', 'rel': 'bookmark'}]}]} +X-Openstack-Ironic-Api-Version: 1.8 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-8a1fb831-085f-4619-891c-cc9b1522b0e5 +Openstack-Request-Id: req-21cfbbd2-4927-4fd5-adad-e34fbcfa732e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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?traits=CUSTOM_TRAIT_1 {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-8d333189-a1a3-4fd0-92f4-f0fd7da07838 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} -GET: /v1/nodes/test.1 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'test.1', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:10:02.838929+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_suffix ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.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_node.TestPatch.test_patch_deploy_step_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id ... ok -GET: /v1/chassis/?limit=3 {} -GOT:{'chassis': [{'uuid': '1c568a7a-7493-45c8-9118-2a7405a76530', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/1c568a7a-7493-45c8-9118-2a7405a76530', 'rel': 'self'}, {'href': 'http://localhost/chassis/1c568a7a-7493-45c8-9118-2a7405a76530', 'rel': 'bookmark'}]}, {'uuid': '2963133a-8e90-4fdb-ab4a-45d535cc8b24', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/2963133a-8e90-4fdb-ab4a-45d535cc8b24', 'rel': 'self'}, {'href': 'http://localhost/chassis/2963133a-8e90-4fdb-ab4a-45d535cc8b24', 'rel': 'bookmark'}]}, {'uuid': 'e6c53484-8b36-4559-83c7-7310c0fb2845', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e6c53484-8b36-4559-83c7-7310c0fb2845', 'rel': 'self'}, {'href': 'http://localhost/chassis/e6c53484-8b36-4559-83c7-7310c0fb2845', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&limit=3&marker=e6c53484-8b36-4559-83c7-7310c0fb2845'} -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-2ba2a0ca-981c-4428-991b-8a8ee61017d5 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "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"}], "updated_at": "2023-01-07T00:10:02.800507+00:00", "created_at": "2023-01-07T00:10:02.714299+00:00"} -GET: /v1/drivers/bad_driver/properties {} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:53.273454+00:00'}]} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': ['CUSTOM_1'], 'updated_at': None, 'created_at': '2021-12-04T17:53:53.273454+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ssh_creds_masked +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ssh_creds_masked ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_not_acceptable ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_interfaces_without_driver ... ok + +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 {} +GOT:{} +GET: /drivers/fake-hardware-type/properties {} +GOT:{} +GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1e04f064-353a-4ac9-b196-29f90a820540 +Openstack-Request-Id: req-7fe24a30-1714-45a7-9326-98ab1b664eaf X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {} -GOT:{'drivers': []} -DELETE: /v1/nodes/doesntexist/vifs/4818dfac-d466-4352-afb1-8b61950f47d7 -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d53a13e7-4090-4ce5-8671-860352a13d63 +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}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +GOT:Response: 202 Accepted +Openstack-Request-Id: req-129e8140-03c0-4d21-a4ca-7cb5638f363d X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/bios {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: /v1/nodes?associated=blah {} +X-Openstack-Ironic-Api-Version: 1.1 + +GET: /v1/nodes/detail?associated=true {} +GOT:{'nodes': [{'uuid': '8d562316-2658-4200-803e-f3b0d5633ca2', 'instance_uuid': 'a39ba00c-ec06-4aa0-b0d1-521d02d4db01', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/8d562316-2658-4200-803e-f3b0d5633ca2', 'rel': 'self'}, {'href': 'http://localhost/nodes/8d562316-2658-4200-803e-f3b0d5633ca2', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8d562316-2658-4200-803e-f3b0d5633ca2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8d562316-2658-4200-803e-f3b0d5633ca2/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.509503+00:00'}, {'uuid': '8b6a7b7d-a9dc-4415-9d69-8008d2e78ced', 'instance_uuid': '465abecc-6bb2-44f0-b0d1-5b56b005576a', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/8b6a7b7d-a9dc-4415-9d69-8008d2e78ced', 'rel': 'self'}, {'href': 'http://localhost/nodes/8b6a7b7d-a9dc-4415-9d69-8008d2e78ced', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8b6a7b7d-a9dc-4415-9d69-8008d2e78ced/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8b6a7b7d-a9dc-4415-9d69-8008d2e78ced/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.515615+00:00'}, {'uuid': 'dcaa39dc-bd48-43e0-bd53-7847311cbf6b', 'instance_uuid': 'a8f48b2d-b4a1-48d8-831a-e7daf2d402c6', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/dcaa39dc-bd48-43e0-bd53-7847311cbf6b', 'rel': 'self'}, {'href': 'http://localhost/nodes/dcaa39dc-bd48-43e0-bd53-7847311cbf6b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/dcaa39dc-bd48-43e0-bd53-7847311cbf6b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/dcaa39dc-bd48-43e0-bd53-7847311cbf6b/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.521491+00:00'}, {'uuid': '9b7e7aa0-c2d6-477f-b137-2d7ba5ce5dec', 'instance_uuid': '20e0a0ca-eba5-46fd-82fb-db3737e77658', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/9b7e7aa0-c2d6-477f-b137-2d7ba5ce5dec', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b7e7aa0-c2d6-477f-b137-2d7ba5ce5dec', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9b7e7aa0-c2d6-477f-b137-2d7ba5ce5dec/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b7e7aa0-c2d6-477f-b137-2d7ba5ce5dec/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.527334+00:00'}]} +GET: /v1/nodes?maintenance=true {} +GOT:{'nodes': [{'uuid': '30ce33ec-2463-4a8f-b161-7628a158f42e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/30ce33ec-2463-4a8f-b161-7628a158f42e', 'rel': 'self'}, {'href': 'http://localhost/nodes/30ce33ec-2463-4a8f-b161-7628a158f42e', 'rel': 'bookmark'}]}, {'uuid': '04290b48-e675-4cb5-987d-319d13860100', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/04290b48-e675-4cb5-987d-319d13860100', 'rel': 'self'}, {'href': 'http://localhost/nodes/04290b48-e675-4cb5-987d-319d13860100', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?maintenance=false {} +GOT:{'nodes': [{'uuid': 'a61debd1-eea0-433a-a4be-593448586752', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a61debd1-eea0-433a-a4be-593448586752', 'rel': 'self'}, {'href': 'http://localhost/nodes/a61debd1-eea0-433a-a4be-593448586752', 'rel': 'bookmark'}]}, {'uuid': 'b29e2932-8521-4d45-9f76-168c3a8eed85', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b29e2932-8521-4d45-9f76-168c3a8eed85', 'rel': 'self'}, {'href': 'http://localhost/nodes/b29e2932-8521-4d45-9f76-168c3a8eed85', 'rel': 'bookmark'}]}, {'uuid': '40decdf9-ca2d-40a2-b402-f8d1eabc58ba', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/40decdf9-ca2d-40a2-b402-f8d1eabc58ba', 'rel': 'self'}, {'href': 'http://localhost/nodes/40decdf9-ca2d-40a2-b402-f8d1eabc58ba', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=true&maintenance=blah {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c60df16d-ee9a-464a-9a49-1ff9b3e43dcc +Openstack-Request-Id: req-22043bd0-9c9b-4fd2-a355-fc76c8a596bb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute associated. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} -GET: /v1/nodes?fields=uuid,instance_info {} -GOT:{'nodes': [{'uuid': 'ae088b08-7197-4921-b76c-dbfecfacc79d', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/ae088b08-7197-4921-b76c-dbfecfacc79d', 'rel': 'self'}, {'href': 'http://localhost/nodes/ae088b08-7197-4921-b76c-dbfecfacc79d', 'rel': 'bookmark'}]}, {'uuid': '5a3143b4-8200-4186-896c-c71b3d5b11f6', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/5a3143b4-8200-4186-896c-c71b3d5b11f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/5a3143b4-8200-4186-896c-c71b3d5b11f6', 'rel': 'bookmark'}]}, {'uuid': '2cc91e70-ea62-4eff-bc3b-1fc5ac6713c2', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/2cc91e70-ea62-4eff-bc3b-1fc5ac6713c2', 'rel': 'self'}, {'href': 'http://localhost/nodes/2cc91e70-ea62-4eff-bc3b-1fc5ac6713c2', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} -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'}], 'storage_interface': None} -GET: /v1/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c {} -GOT:{'uuid': '78195e1e-1a36-43a7-802d-50e03ec8987c', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c', 'rel': 'self'}, {'href': 'http://foo/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:05.527602+00:00'} -GET: /v1/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c {} -GOT:{'uuid': '78195e1e-1a36-43a7-802d-50e03ec8987c', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c', 'rel': 'self'}, {'href': 'http://foo/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:05.527602+00:00'} -GET: /nodes/78195e1e-1a36-43a7-802d-50e03ec8987c {} -GOT:{'uuid': '78195e1e-1a36-43a7-802d-50e03ec8987c', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://foo/v1/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c', 'rel': 'self'}, {'href': 'http://foo/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/78195e1e-1a36-43a7-802d-50e03ec8987c/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:05.527602+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links_public_url ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state ... 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_node.TestListNodes.test_unassociated_nodes_with_limit -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_with_limit ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute maintenance. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"}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_node.TestListNodes.test_node_states_raid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_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_node.TestPatch.test_update_conductor_group +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group ... ok -GET: /v1/nodes?driver=ipmi {} -GOT:{'nodes': [{'uuid': '35611618-5b63-4756-bddf-a9bf41f5243f', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/35611618-5b63-4756-bddf-a9bf41f5243f', 'rel': 'self'}, {'href': 'http://localhost/nodes/35611618-5b63-4756-bddf-a9bf41f5243f', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?driver=fake-hardware {} -GOT:{'nodes': [{'uuid': '7dbb8925-a751-4fab-b327-accfa40a39d5', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7dbb8925-a751-4fab-b327-accfa40a39d5', 'rel': 'self'}, {'href': 'http://localhost/nodes/7dbb8925-a751-4fab-b327-accfa40a39d5', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?driver=test {} +GET: /v1/nodes/detail?fault=clean failure {} +GOT:{'nodes': [{'uuid': 'a1471c10-ea01-4abf-a4cc-08453c139aa5', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': 'clean failure', 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a1471c10-ea01-4abf-a4cc-08453c139aa5/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.270835+00:00'}]} +GET: /v1/nodes?resource_class=test {} GOT:{'nodes': []} -GET: /v1/nodes?provision_state=test {} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=extra,instance_info {} +GOT:{'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'extra': {}, '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.json {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:52.251888+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.824211+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +GOT:{'targets': [{'uuid': '9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'rel': 'bookmark'}]}, {'uuid': '62e1d59b-7961-4594-9e19-b0b435cfe5d2', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/62e1d59b-7961-4594-9e19-b0b435cfe5d2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/62e1d59b-7961-4594-9e19-b0b435cfe5d2', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} +GOT:{'targets': [{'uuid': '9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=1&marker=9cb2ea7d-2fd2-4fa9-9a1c-9df0af2e0b9c'} +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-e888cf64-7d7f-4f51-bbee-24419dcb2d74 +Openstack-Request-Id: req-69c78727-f2e2-449d-bb75-37c65d1d2edf X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/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/node.json {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'node.json', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:10:03.178630+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} -GOT:{'supported_boot_devices': ['pxe']} -GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': '264e7ed9-f377-4be6-b0ac-b4dd46af6cc0', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/264e7ed9-f377-4be6-b0ac-b4dd46af6cc0', 'rel': 'self'}, {'href': 'http://localhost/nodes/264e7ed9-f377-4be6-b0ac-b4dd46af6cc0', 'rel': 'bookmark'}]}, {'uuid': '4f82ac16-2834-4ae0-b823-d8d9ce48c91c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/4f82ac16-2834-4ae0-b823-d8d9ce48c91c', 'rel': 'self'}, {'href': 'http://localhost/nodes/4f82ac16-2834-4ae0-b823-d8d9ce48c91c', 'rel': 'bookmark'}]}, {'uuid': '7617c6e5-9183-4bd6-a8c9-5faa04f65504', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7617c6e5-9183-4bd6-a8c9-5faa04f65504', 'rel': 'self'}, {'href': 'http://localhost/nodes/7617c6e5-9183-4bd6-a8c9-5faa04f65504', 'rel': 'bookmark'}]}, {'uuid': '07ec5215-0d29-4c2a-bf81-21339d1264b5', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/07ec5215-0d29-4c2a-bf81-21339d1264b5', 'rel': 'self'}, {'href': 'http://localhost/nodes/07ec5215-0d29-4c2a-bf81-21339d1264b5', 'rel': 'bookmark'}]}, {'uuid': '4ed7abda-5516-4483-b119-c10172527d3e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/4ed7abda-5516-4483-b119-c10172527d3e', 'rel': 'self'}, {'href': 'http://localhost/nodes/4ed7abda-5516-4483-b119-c10172527d3e', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} -GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '2000-01-01T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.077019+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.077019+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_field_hidden_in_lower_version ... ok -ironic.tests.unit.api.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_node.TestListNodes.test_portgroups_subresource_link -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_node.TestListNodes.test_volume_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent ... ok +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/console_enabled' is an internal attribute and can not be updated\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_consoled_enabled ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name ... ok -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} -GOT:{'portgroups': [{'uuid': '5bfaca44-9a07-44bf-b850-bad8867dcc14', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/5bfaca44-9a07-44bf-b850-bad8867dcc14', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5bfaca44-9a07-44bf-b850-bad8867dcc14', 'rel': 'bookmark'}]}, {'uuid': '0dfb0487-1848-4a2c-931c-ec727d791614', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/0dfb0487-1848-4a2c-931c-ec727d791614', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0dfb0487-1848-4a2c-931c-ec727d791614', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} -GOT:{'portgroups': [{'uuid': '5bfaca44-9a07-44bf-b850-bad8867dcc14', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/5bfaca44-9a07-44bf-b850-bad8867dcc14', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5bfaca44-9a07-44bf-b850-bad8867dcc14', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=1&marker=5bfaca44-9a07-44bf-b850-bad8867dcc14'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +GOT:{'portgroups': [{'uuid': '1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1d13ef05-cd4f-4266-bca3-f1ffb40a453a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=1&marker=1d13ef05-cd4f-4266-bca3-f1ffb40a453a'} +GET: /v1/nodes?sort_key=resource_class {} +GOT:{'nodes': [{'uuid': 'a3a26833-408a-4872-aef1-c469978554eb', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a3a26833-408a-4872-aef1-c469978554eb', 'rel': 'self'}, {'href': 'http://localhost/nodes/a3a26833-408a-4872-aef1-c469978554eb', 'rel': 'bookmark'}]}, {'uuid': '473b3c03-3a44-432a-b850-cdf31192a8b7', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/473b3c03-3a44-432a-b850-cdf31192a8b7', 'rel': 'self'}, {'href': 'http://localhost/nodes/473b3c03-3a44-432a-b850-cdf31192a8b7', 'rel': 'bookmark'}]}, {'uuid': 'ac155ff7-a940-42f7-b4af-9a0b1615cb66', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ac155ff7-a940-42f7-b4af-9a0b1615cb66', 'rel': 'self'}, {'href': 'http://localhost/nodes/ac155ff7-a940-42f7-b4af-9a0b1615cb66', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} +GOT:{'connectors': [{'uuid': '53aa2e27-0ce3-469f-8eb3-01741f600a80', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/53aa2e27-0ce3-469f-8eb3-01741f600a80', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/53aa2e27-0ce3-469f-8eb3-01741f600a80', 'rel': 'bookmark'}]}, {'uuid': '1104f2c1-e800-4f8f-84b6-622f83b76a58', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1104f2c1-e800-4f8f-84b6-622f83b76a58', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1104f2c1-e800-4f8f-84b6-622f83b76a58', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} +GOT:{'connectors': [{'uuid': '53aa2e27-0ce3-469f-8eb3-01741f600a80', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/53aa2e27-0ce3-469f-8eb3-01741f600a80', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/53aa2e27-0ce3-469f-8eb3-01741f600a80', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=1&marker=53aa2e27-0ce3-469f-8eb3-01741f600a80'} +GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6997a5da-ca44-4f87-a084-7276f5dbe8ca -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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}"} -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-bcdf8a7b-e4a7-4b08-9c2f-93bdce0c932f +Openstack-Request-Id: req-5c742943-c350-4a2d-817f-9a0044e52c85 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:01.822285+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver_info/this', 'value': 'foo', 'op': 'add'}, {'path': '/driver_info/that', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} +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-7fbe948b-efbb-4caf-9c1b-2215908bc6ea +Openstack-Request-Id: req-260044d7-3fa5-48fa-8944-a4f2c47b6a4e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/e09bd2da-934d-4d1f-b347-d95d2efc98d1 [{'path': '/instance_uuid', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.5 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name ''\", \"debuginfo\": null}"} +PATCH: /v1/nodes/26ee2e23-be9a-4e3e-8293-0387191236de [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-bd697c83-8d41-4daa-8d02-6497debbcea7 +Openstack-Request-Id: req-2230d081-c953-46b2-9033-c334f7cfa0aa X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.39 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"e09bd2da-934d-4d1f-b347-d95d2efc98d1\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} -PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.5 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\", \"debuginfo\": null}"} +PATCH: /v1/nodes/96db666d-3067-4c18-ac46-00b5af2cf1bd [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bd8247b5-fe57-423e-b65f-c4a8333fd39e +Openstack-Request-Id: req-10b812fb-1cf0-47b6-9f7c-21ffb6527ab3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2023-01-07T00:10:02.669016+00:00"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'class2', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "96db666d-3067-4c18-ac46-00b5af2cf1bd", "instance_uuid": null, "power_state": null, "target_power_state": "power off", "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": true, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/96db666d-3067-4c18-ac46-00b5af2cf1bd", "rel": "self"}, {"href": "http://localhost/nodes/96db666d-3067-4c18-ac46-00b5af2cf1bd", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/96db666d-3067-4c18-ac46-00b5af2cf1bd/ports", "rel": "self"}, {"href": "http://localhost/nodes/96db666d-3067-4c18-ac46-00b5af2cf1bd/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:52.307734+00:00"} +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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-769843e4-c156-489f-a88e-12c9054d3696 +Openstack-Request-Id: req-ee685948-2018-4609-815c-069d31220d81 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.21 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": "class2", "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": "flat", "updated_at": null, "created_at": "2023-01-07T00:10:03.192258+00:00"}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 - -GET: /v1/nodes?sort_key=resource_class {} -GOT:{'nodes': [{'uuid': 'feb40191-ec7f-4a01-98c7-7b2270c301b0', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/feb40191-ec7f-4a01-98c7-7b2270c301b0', 'rel': 'self'}, {'href': 'http://localhost/nodes/feb40191-ec7f-4a01-98c7-7b2270c301b0', 'rel': 'bookmark'}]}, {'uuid': 'a65af796-9c1d-4518-8fc7-1be51039987b', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a65af796-9c1d-4518-8fc7-1be51039987b', 'rel': 'self'}, {'href': 'http://localhost/nodes/a65af796-9c1d-4518-8fc7-1be51039987b', 'rel': 'bookmark'}]}, {'uuid': '1a8816fa-90e3-44e3-b798-bde0d8cfff48', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1a8816fa-90e3-44e3-b798-bde0d8cfff48', 'rel': 'self'}, {'href': 'http://localhost/nodes/1a8816fa-90e3-44e3-b798-bde0d8cfff48', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.46 +{"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: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d9d2158e-646f-4e82-b46b-0fa3e5071106 +Openstack-Request-Id: req-4e85e43f-cd1d-43c6-a46d-4f37972089b1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'guido-van-rossum'}] -GOT:Response: 200 OK +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/management/inject_nmi {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8616279d-1059-438e-95d2-39f9c09fbd0d +Openstack-Request-Id: req-8eb51e57-e91a-46b3-863c-19084bf83e6b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -{"uuid": "deadbeef-0000-1111-2222-333333333333", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "bookmark"}], "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"}], "updated_at": null, "created_at": "2023-01-07T00:10:02.277432+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/console_enabled', 'op': 'replace', 'value': True}] -GOT:Response: 400 Bad Request +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/power {'target': 'power on'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-43ff168c-8433-4325-8386-16bb83f046da +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': 'soft power off', 'timeout': 0} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-38f61e60-7f32-414c-9cfb-730d7817821b +Openstack-Request-Id: req-cd7a46d1-5713-4bcf-9ed2-6ad80b926b14 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/console_enabled' is an internal attribute and can not be updated\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/provision_updated_at', 'op': 'replace', 'value': '2000-01-01 00:00:00'}] +X-Openstack-Ironic-Api-Version: 1.26 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_disallowed_states ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_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_port.TestListPorts.test_detail_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade ... ok +ironic.tests.unit.api.controllers.v1.test_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_port.TestPatch.test_invalid_physnet_too_long +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long ... ok + +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b0f52f8a-5501-44f3-bc54-1314bc033802 +Openstack-Request-Id: req-d4b17ff0-35e8-40ec-a2bf-74e45f21ef55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/provision_updated_at' is an internal attribute and can not be updated\", \"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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/chassis_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'guido-van-rossum'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a2a91e7c-1dc8-475e-89ef-e5b3333d5f93 +Openstack-Request-Id: req-c39408fa-2863-478d-bb63-caa6adef85a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:51.914272+00:00"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'Windows ME'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1065aa28-53b8-46eb-96ce-355be4da9708 +Openstack-Request-Id: req-ccc54e62-6b30-4cb8-a468-4ddb8fe616b3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'reservation': 'fake'} +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': '/last_error', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-2dc3bbe1-d005-4c1c-b43a-c21201f8c991 +Openstack-Request-Id: req-b19961b5-0612-4785-9491-a9ae2d9a0007 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute reservation. Value: 'fake'. Cannot set read only field.\", \"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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/last_error' is an internal attribute and can not be updated\", \"debuginfo\": null}"} +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-76fa3bb2-a876-4615-a451-60a421f94d44 +Openstack-Request-Id: req-b8161c84-c21e-4d7c-931c-fdaad11d8227 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/vendor_passthru/do_test -GOT:Response: 202 Accepted +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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-313f9902-a96f-4b4e-a736-206ae73443fe +Openstack-Request-Id: req-10f3e705-7076-4bb5-980b-b37129694135 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -null -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {} -GOT:foo -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-9cf8579f-a90a-42b0-830d-048378a3f247 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-089b4ca2-d190-4c2d-bc56-0dfc93de3fda X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails ... ok -ironic.tests.unit.api.controllers.v1.test_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_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_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 +X-Openstack-Ironic-Api-Version: 1.10 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.639260+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.639260+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.639260+00:00'}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.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_node.TestPost.test_post_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.TestPut.test_manage_from_available +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_empty_password ... ok -ironic.tests.unit.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_port.TestListPorts.test_collection_links -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ... 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_rescue_raises_error_before_1_38 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_notification_utils.APINotifyTestCase.test_notification_uuid_unset +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_notification_uuid_unset ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'traits': ['CUSTOM_4']} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-cfd66c7f-5e00-4415-b9a7-6f6a8eb72047 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-8a295faa-fc80-438b-979a-0b85ca15b923 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-927f656b-91ca-4f1e-9def-c4c2468b52db +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-607f0489-d552-4f93-ba48-18e1c3e282e7 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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}"} +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-212175c3-5e62-4bf9-90ed-0a000061f087 +Openstack-Request-Id: req-3a4fd89c-a83f-4c18-9de1-5cb3fe0b8673 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify node traits on node creation. Traits must be set via the node traits API.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'not-supported'} +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-5ce0d51a-6728-4563-9d8b-ba1b2476939f +Openstack-Request-Id: req-db1ac4c5-88ed-45b5-8bb7-9e021d187537 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=blah {'boot_device': 'pxe'} +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/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-6e5ec271-59c9-44b6-bd29-8eeac6e5b302 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-33d9e407-57a7-4805-af76-d0810bb774ca +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': 'rebuild', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a6fff41b-0f0f-4d6a-bf7f-34dbb43ef3d2 +Openstack-Request-Id: req-67a46b6c-fe66-439c-b00d-2d4b69efd45b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute persistent. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} -DELETE: /v1/nodes/node-39/traits -GOT:Response: 204 No Content -Openstack-Request-Id: req-dece2693-a608-45c8-870f-bdb0383fdf70 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"} +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-0435aaee-45fc-4eb5-b731-c84fcb1427aa X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 - -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/54b495dd-fc58-4524-95d7-5c9b728c0dd4 +{"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}"} +GET: /v1/ports?detail=True&fields=name {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-b29ff759-d8c3-448f-8a2f-6cc56d0952bd +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} +GET: /v1/ports/detail?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123&node=node-name {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:54.730086+00:00', 'updated_at': None}]} +GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4&node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-cd40fa4d-e4a9-4be3-bf03-a6290b904165 +Openstack-Request-Id: req-2ada969b-6f7c-4682-b4c4-fbce6dab9c19 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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?node=test-node {} -GOT:Response: 406 Not Acceptable +PATCH: /v1/ports/d125a974-0930-48cb-9178-03adc279f4fa [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}]ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_diff_internal +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_diff_internal ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_same +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_same ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_port.TestPost.test_create_port_min_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.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_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 + +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-fb54b7d9-d09e-40c4-9e77-4e941e127bce +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-2142b2f0-b389-4fe3-b599-00e467f23c79 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {} -GOT:{'ports': [{'uuid': 'f2a1cbb4-074b-4ee7-8c25-35c443d1ab3f', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/f2a1cbb4-074b-4ee7-8c25-35c443d1ab3f', 'rel': 'self'}, {'href': 'http://localhost/ports/f2a1cbb4-074b-4ee7-8c25-35c443d1ab3f', 'rel': 'bookmark'}]}, {'uuid': 'bd1d59c0-54f5-4ffe-8487-e5ef4e41a97e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/bd1d59c0-54f5-4ffe-8487-e5ef4e41a97e', 'rel': 'self'}, {'href': 'http://localhost/ports/bd1d59c0-54f5-4ffe-8487-e5ef4e41a97e', 'rel': 'bookmark'}]}, {'uuid': 'c8d7129b-df55-4bb8-ab39-0046978c9573', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/c8d7129b-df55-4bb8-ab39-0046978c9573', 'rel': 'self'}, {'href': 'http://localhost/ports/c8d7129b-df55-4bb8-ab39-0046978c9573', 'rel': 'bookmark'}]}, {'uuid': '5fb58892-229c-4347-abc7-025425a70b80', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/5fb58892-229c-4347-abc7-025425a70b80', 'rel': 'self'}, {'href': 'http://localhost/ports/5fb58892-229c-4347-abc7-025425a70b80', 'rel': 'bookmark'}]}, {'uuid': '8889032f-464f-4a11-8638-8331bbdfec7a', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/8889032f-464f-4a11-8638-8331bbdfec7a', 'rel': 'self'}, {'href': 'http://localhost/ports/8889032f-464f-4a11-8638-8331bbdfec7a', 'rel': 'bookmark'}]}]} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:51.959111+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:51.959111+00:00'} +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-8583c6a3-7bfb-44b1-ba4f-a26ec147225d +Openstack-Request-Id: req-8e976d2a-01ff-4a05-a197-2389e614fd51 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:03.169503+00:00", "updated_at": "2023-01-07T00:10:03.264386+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +{"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-21ccce64-7270-4725-ae59-fc77728fae84 +Openstack-Request-Id: req-73c65fde-07bc-453d-a57a-b846743194a9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:03.169503+00:00", "updated_at": "2023-01-07T00:10:03.315245+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"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-c19fb2cf-07be-47b0-83b3-a5d14ca82ec3 +Openstack-Request-Id: req-51f597eb-8fa5-488b-8bbc-a8cd0ebe49f1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:03.420912+00:00", "updated_at": "2023-01-07T00:10:03.517159+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] +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/power {'target': 'soft power off', 'timeout': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6597891c-99d6-46c9-acc1-742b6b808232 +Openstack-Request-Id: req-9d9dcd47-3321-44c3-ac49-31bf00c8b073 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.14 +X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/portgroups/detail {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:03.929182+00:00', 'updated_at': None}]}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_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_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_ramdisk.TestHeartbeat.test_node_not_found -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values -ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_links_node_states_and_driver_properties -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_links_node_states_and_driver_properties ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_no_pin -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_no_pin ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_resource_class -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ... ok -ironic.tests.unit.api.controllers.v1.test_utils.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_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_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_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_volume_target.TestListVolumeTargets.test_detail -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many ... ok -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'}]} -POST: /v1/chassis/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-33eb952d-fbb9-477a-9c31-f795bc457e88 +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-c75c2da4-d27b-48a7-ba97-8bcdea03b0ce X-Openstack-Ironic-Api-Maximum-Version: 1.46 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?detail=True {} +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_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_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_port.TestListPorts.test_one +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_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_port.TestPortObject.test_port_init +ironic.tests.unit.api.controllers.v1.test_port.TestPortObject.test_port_init ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_cannot_send_create_port +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_cannot_send_create_port ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ... 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_portgroup.TestListPortgroups.test_detail_using_query_and_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields ... ok +ironic.tests.unit.api.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 +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9a26b35d-a673-4b09-bc00-b7a8ea5e324e +Openstack-Request-Id: req-e70491fd-ba90-454d-8dc8-0777cc76e0ab X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/fake-hardware-type/raid/logical_disk_properties {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.32 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.749204+00:00'}]} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.749204+00:00'}]} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.097011+00:00'}]} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2021-12-04T17:53:52.097011+00:00'}]} +GET: /v1/nodes?associated=true&maintenance=false {} +GOT:{'nodes': [{'uuid': '75b161cb-d82d-493b-9f44-ed51c61a6b75', 'instance_uuid': 'c93a1295-5146-4fed-99e2-b5870a7c5893', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/75b161cb-d82d-493b-9f44-ed51c61a6b75', 'rel': 'self'}, {'href': 'http://localhost/nodes/75b161cb-d82d-493b-9f44-ed51c61a6b75', 'rel': 'bookmark'}]}, {'uuid': '2b9a751b-4bf8-49fc-8cdc-4dadd23e8f9d', 'instance_uuid': 'e7cdfa82-1f24-4b15-8c3f-48a1a7587b6b', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2b9a751b-4bf8-49fc-8cdc-4dadd23e8f9d', 'rel': 'self'}, {'href': 'http://localhost/nodes/2b9a751b-4bf8-49fc-8cdc-4dadd23e8f9d', 'rel': 'bookmark'}]}, {'uuid': '121c487b-7403-4c0f-beac-d945e2a96dbd', 'instance_uuid': '4ff2d0d5-b3b3-4595-b54a-9ee187d076d7', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/121c487b-7403-4c0f-beac-d945e2a96dbd', 'rel': 'self'}, {'href': 'http://localhost/nodes/121c487b-7403-4c0f-beac-d945e2a96dbd', 'rel': 'bookmark'}]}, {'uuid': '8622f0a0-5a35-47f9-978b-60fe09df892b', 'instance_uuid': 'db3ac6ba-011d-41d6-bf54-0fe2d7b3015c', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8622f0a0-5a35-47f9-978b-60fe09df892b', 'rel': 'self'}, {'href': 'http://localhost/nodes/8622f0a0-5a35-47f9-978b-60fe09df892b', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state ... 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.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ... ok + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:51.669687+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:52.017573+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.017573+00:00'} +GET: /v1/nodes?sort_key=uuid {} +GOT:{'nodes': [{'uuid': '26eb8914-98ae-4878-b28f-7354bffe45dc', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/26eb8914-98ae-4878-b28f-7354bffe45dc', 'rel': 'self'}, {'href': 'http://localhost/nodes/26eb8914-98ae-4878-b28f-7354bffe45dc', 'rel': 'bookmark'}]}, {'uuid': '5d52666c-5f04-47de-a7a4-550872c12fcb', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5d52666c-5f04-47de-a7a4-550872c12fcb', 'rel': 'self'}, {'href': 'http://localhost/nodes/5d52666c-5f04-47de-a7a4-550872c12fcb', 'rel': 'bookmark'}]}, {'uuid': '828b8657-ad59-4d41-a0c4-8611ea967655', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/828b8657-ad59-4d41-a0c4-8611ea967655', 'rel': 'self'}, {'href': 'http://localhost/nodes/828b8657-ad59-4d41-a0c4-8611ea967655', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:53.394458+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info ... ok +ironic.tests.unit.api.controllers.v1.test_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_node.TestPatch.test_update_resource_class_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_old_api ... ok + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:51.863551+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {'foo': 'bar'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:51.863551+00:00'} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:52.187447+00:00'}]} +GET: /v1/nodes/detail {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'storage_interface': 'cinder', 'vendor_interface': None, 'updated_at': None, 'created_at': '2021-12-04T17:53:52.187447+00:00'}]} +GET: /v1/nodes/detail?limit=3&associated=true {} +GOT:{'nodes': [{'uuid': '0997c58c-3b44-43fb-97fb-448cd1bcf60f', 'instance_uuid': 'e1ab17af-6b9c-49d7-8bc1-45add465b365', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/0997c58c-3b44-43fb-97fb-448cd1bcf60f', 'rel': 'self'}, {'href': 'http://localhost/nodes/0997c58c-3b44-43fb-97fb-448cd1bcf60f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/0997c58c-3b44-43fb-97fb-448cd1bcf60f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0997c58c-3b44-43fb-97fb-448cd1bcf60f/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.884872+00:00'}, {'uuid': '3cd9d7eb-fd06-48a2-985e-96c98f3e8693', 'instance_uuid': 'a1b63449-0efd-443f-add6-85885a034d2e', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/3cd9d7eb-fd06-48a2-985e-96c98f3e8693', 'rel': 'self'}, {'href': 'http://localhost/nodes/3cd9d7eb-fd06-48a2-985e-96c98f3e8693', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/3cd9d7eb-fd06-48a2-985e-96c98f3e8693/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/3cd9d7eb-fd06-48a2-985e-96c98f3e8693/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.891097+00:00'}, {'uuid': 'ee15df8d-223f-4e06-9210-0a7804251c78', 'instance_uuid': '96a8f602-f90e-4619-8353-2f8415446e77', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/ee15df8d-223f-4e06-9210-0a7804251c78', 'rel': 'self'}, {'href': 'http://localhost/nodes/ee15df8d-223f-4e06-9210-0a7804251c78', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ee15df8d-223f-4e06-9210-0a7804251c78/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ee15df8d-223f-4e06-9210-0a7804251c78/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:52.897568+00:00'}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=ee15df8d-223f-4e06-9210-0a7804251c78'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ... 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 + +GET: /v1/nodes/spam/management/boot_device/supported {} +GOT:{'supported_boot_devices': ['pxe']} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.391511+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': 'fish', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.391511+00:00'} +GET: /v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8 {} +GOT:{'uuid': 'bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.724144+00:00'} +GET: /v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8 {} +GOT:{'uuid': 'bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.724144+00:00'} +GET: /nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8 {} +GOT:{'uuid': 'bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bd9048c3-6bfa-412c-a4b0-90524d5275f8/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.724144+00:00'} +GET: /v1/nodes?instance_uuid=a3551191-910f-447e-878b-6a671f2cb79d {} +GOT:{'nodes': []} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'inspecting', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2021-12-04T17:53:55.256534+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_inspect_wait_state_between_api_versions ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_node.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition ... ok + +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', '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, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-50a01a6e-e985-4b43-abc0-2db56ee9651b +Openstack-Request-Id: req-ce2e3968-beae-408c-a5c0-ddb93e2d2934 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -DELETE: /v1/nodes/foo -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute driver. Value: 'None'. Mandatory field missing.\", \"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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-0f945e9f-baa2-4d59-9801-e0caa4add365 +Openstack-Request-Id: req-851eadc8-0ce6-4332-9065-963cea8b7697 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -GET: /v1/nodes?associated=true {} -GOT:{'nodes': [{'uuid': '42a20be8-f644-4c99-8a8b-0924d1665978', 'instance_uuid': '7ddf16a8-23a6-4345-8666-6f130e3ac758', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/42a20be8-f644-4c99-8a8b-0924d1665978', 'rel': 'self'}, {'href': 'http://localhost/nodes/42a20be8-f644-4c99-8a8b-0924d1665978', 'rel': 'bookmark'}]}, {'uuid': 'b437423c-8659-44ff-b173-86a26a6c0424', 'instance_uuid': '0956c158-f377-4521-bc02-af2dd0f4aecc', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b437423c-8659-44ff-b173-86a26a6c0424', 'rel': 'self'}, {'href': 'http://localhost/nodes/b437423c-8659-44ff-b173-86a26a6c0424', 'rel': 'bookmark'}]}, {'uuid': '09317e44-5824-4540-96a5-1413a16b44d7', 'instance_uuid': '57040cf6-e92c-4e0a-ad07-19f4959661c3', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/09317e44-5824-4540-96a5-1413a16b44d7', 'rel': 'self'}, {'href': 'http://localhost/nodes/09317e44-5824-4540-96a5-1413a16b44d7', 'rel': 'bookmark'}]}, {'uuid': '3be1dab7-fb35-43a4-af09-dfeca7531576', 'instance_uuid': 'aeb5fe49-740d-45e4-847f-daba5f656149', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3be1dab7-fb35-43a4-af09-dfeca7531576', 'rel': 'self'}, {'href': 'http://localhost/nodes/3be1dab7-fb35-43a4-af09-dfeca7531576', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=True {} -GOT:{'nodes': [{'uuid': '42a20be8-f644-4c99-8a8b-0924d1665978', 'instance_uuid': '7ddf16a8-23a6-4345-8666-6f130e3ac758', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/42a20be8-f644-4c99-8a8b-0924d1665978', 'rel': 'self'}, {'href': 'http://localhost/nodes/42a20be8-f644-4c99-8a8b-0924d1665978', 'rel': 'bookmark'}]}, {'uuid': 'b437423c-8659-44ff-b173-86a26a6c0424', 'instance_uuid': '0956c158-f377-4521-bc02-af2dd0f4aecc', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b437423c-8659-44ff-b173-86a26a6c0424', 'rel': 'self'}, {'href': 'http://localhost/nodes/b437423c-8659-44ff-b173-86a26a6c0424', 'rel': 'bookmark'}]}, {'uuid': '09317e44-5824-4540-96a5-1413a16b44d7', 'instance_uuid': '57040cf6-e92c-4e0a-ad07-19f4959661c3', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/09317e44-5824-4540-96a5-1413a16b44d7', 'rel': 'self'}, {'href': 'http://localhost/nodes/09317e44-5824-4540-96a5-1413a16b44d7', 'rel': 'bookmark'}]}, {'uuid': '3be1dab7-fb35-43a4-af09-dfeca7531576', 'instance_uuid': 'aeb5fe49-740d-45e4-847f-daba5f656149', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3be1dab7-fb35-43a4-af09-dfeca7531576', 'rel': 'self'}, {'href': 'http://localhost/nodes/3be1dab7-fb35-43a4-af09-dfeca7531576', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?sort_key=resource_class {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-5b036781-464c-4eeb-936a-9ca9abbac9fa +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {} +GOT:foo +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-79722d85-dd3e-49e7-ab1a-9a9a8616ab5c X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:04.508547+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ... 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 +X-Openstack-Ironic-Api-Version: 1.4 +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-32262983-2a16-48d8-b7b1-bf0fbbc2400e +Openstack-Request-Id: req-be2ec0b8-22c4-442d-b520-61f1d6282198 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +{"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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-53cc7588-132a-44aa-8d7d-2d2f573aa275 +Openstack-Request-Id: req-38038eef-d8a1-4b42-8044-883c3d6a13eb X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'console_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'not-supported'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c9e5e4ed-b27a-4bd5-8562-89d16422e7ac +Openstack-Request-Id: req-428dd697-96d8-4120-995a-61e3e646774b X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'deploy_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-c094e7ca-1728-4c93-ba98-29adec5f3f99 +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', 'configdrive': 'foo'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-cf677f12-3236-43f0-9c4e-102b64df27e5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.1 + +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-c9853457-231b-4fd4-ad3f-d22981bfdc55 +Openstack-Request-Id: req-e0381390-dc50-4604-ab9d-cb487cdf2da9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.30 +X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +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-f119d423-3fa0-4d89-8871-cbc094f7fccd +Openstack-Request-Id: req-cac8bdff-7735-424f-bb37-be964694ab7a X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute persistent. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', 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/maintenance {'reason': 'fake_reason'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-fb7524cd-b17e-4888-b483-eac5e79cba31 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 + +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-2b4f34a6-2a1b-4fcf-98c5-f9ce9c8110bc +Openstack-Request-Id: req-591ec99e-da1a-4b70-93be-ca59d25893b1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +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/bad_trait {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-bd7562b8-d952-4da2-9905-bb654911ffa4 +Openstack-Request-Id: req-cc34d408-e2c0-46a7-bb31-289f03ced9b6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'vendor_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-10e54156-5b46-4063-8b5c-0a780f8af252 +Openstack-Request-Id: req-15888a38-210a-413b-badc-2cdb7eeb3079 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_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, '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_node.TestPut.test_provision_with_deploy -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_port.TestListPorts.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_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_port.TestPatch.test_remove_extra_vif_port_id_not_same -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_same ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid ... ok +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}"} +GET: /v1/ports?node=test-node {} +GOT:{'ports': [{'uuid': 'a41c335a-c6ef-404b-96e6-fd9a3149762e', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/a41c335a-c6ef-404b-96e6-fd9a3149762e', 'rel': 'self'}, {'href': 'http://localhost/ports/a41c335a-c6ef-404b-96e6-fd9a3149762e', 'rel': 'bookmark'}]}, {'uuid': 'aca9fa6a-1235-47f0-9a33-9a5e926983b5', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/aca9fa6a-1235-47f0-9a33-9a5e926983b5', 'rel': 'self'}, {'href': 'http://localhost/ports/aca9fa6a-1235-47f0-9a33-9a5e926983b5', 'rel': 'bookmark'}]}, {'uuid': '2a76e162-1d20-4bd7-88c5-a95b77c9fa0c', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/2a76e162-1d20-4bd7-88c5-a95b77c9fa0c', 'rel': 'self'}, {'href': 'http://localhost/ports/2a76e162-1d20-4bd7-88c5-a95b77c9fa0c', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi ... ok +ironic.tests.unit.api.controllers.v1.test_port.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.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_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_port.TestPost.test_create_port_invalid_physnet_too_long -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_normalized ... 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: 201 Created +GOT:Response: 403 Forbidden Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-b40ca84e-5909-45c6-abcf-3e8bf4e77ba2 +Openstack-Request-Id: req-f7b07192-33a4-4e2c-9221-33e387b0a615 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:03.797214+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:03.797214+00:00'} -POST: /v1/nodes/node-109/vendor_passthru/test {'foo': 'bar'} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 202 Accepted -Content-Type: application/json -Openstack-Request-Id: req-282065f9-7241-4fe7-9159-bd532ff369f0 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-80887bdb-d4c0-4a08-a89b-0c9604d37bc1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -null -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.17 + +PUT: /v1/nodes/node-39/states/provision {'target': 'active'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8eda4949-0b9d-47eb-a968-f4442c85763a +Openstack-Request-Id: req-49730ebe-209f-4c4a-acbd-e8240cfde153 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"cat": "meow"} -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-d0fb65b1-d8d1-4e78-8ded-ffdd428f3ed9 +{"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': 'rescue', 'rescue_password': ' '} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-a181a1ce-ff52-4bfd-97b5-ddcf85dba1aa X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'manage'} +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-c4e0a326-d714-4a3e-a10c-223a8d0ccb66 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': 'rebuild'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-3d2f6a06-19c0-444d-b84b-0a46bea12f30 +Openstack-Request-Id: req-f8391da6-112e-49c7-ba61-c884b44c39ad X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.17 +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-d9b42048-2556-47d2-81ba-60d427d65d25 +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-88af9db6-620b-4d9f-9f9e-9bc38f9c6f31 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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/node-39/states/console {'enabled': 'true'} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-f7013048-a12b-4692-b717-7a3a97ba2dcf X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} +DELETE: /v1/nodes/node-39/traits +GOT:Response: 204 No Content +Openstack-Request-Id: req-023ea1ff-a1fa-48fa-81d0-7dad257d687a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.37 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} +PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} +GOT:Response: 204 No Content +Openstack-Request-Id: req-cb32cabe-97b5-49a4-9768-a19ebd4156d7 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.37 + +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/30d2ab18-f4a3-4d30-b8b6-1f8e1f242c8b +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-2a8c556b-01f9-4b66-a07a-a2609f2cc7dc +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6fbcbbe4-d54b-4842-9a32-b82e22c075f1 +Openstack-Request-Id: req-063b913b-a2e2-44fc-b085-b382de6a3c8c X-Openstack-Ironic-Api-Maximum-Version: 1.46 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-9361c95d-36e2-42d6-b856-e2dc4086b2e2 +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-0bf1ab80-ecaa-4ba9-ab61-3ffeebff77ae X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'active'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} +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-38f11e4d-c3ea-435e-a76e-0393e0e1628a +Openstack-Request-Id: req-961fa1ac-7134-449a-a295-6b55200e355e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'unrescue'} -GOT:Response: 409 Conflict +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.648010+00:00", "updated_at": "2021-12-04T17:53:55.793495+00:00"} +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-0842056f-1691-44b2-b496-8baff556f311 +Openstack-Request-Id: req-f8f39e96-7eb7-42bb-8895-1ff706fa8b6c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"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-19320e86-e3de-4e49-b73c-5452d5aa0b92 +Openstack-Request-Id: req-eede174d-4c6f-49af-9975-0c98dfbb56aa X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute port_uuid. Value: '52:54:00:cf:2d:31'. unable to convert to uuid. Error: Expected a UUID but received 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-bad221b9-3454-463a-867e-42dc9258aaaf +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-238a6006-7a8e-4ed2-89a1-c16592d7448f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_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_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.api.controllers.v1.test_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_portgroup.TestDelete.test_delete_portgroup_byname +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname ... ok + +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-0c631c7f-6ad3-4b31-a93e-96d0fd5d876a +Openstack-Request-Id: req-43e076a1-dc41-449e-ae9a-dc9678b56f0f X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"}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_rescue_raises_error_before_1_38 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_port.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_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_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_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_port.TestPost.test_create_port_novif_nopxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked ... ok - -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +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-68f59d2e-1626-4893-9511-defe3630bdac +Openstack-Request-Id: req-538a4ae9-10e5-4c24-acac-cb1667cf266b X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/631526c2-ae67-4b45-b076-4984dc7c3a8d [{'path': '/network_interface', 'op': 'remove'}] -GOT:Response: 200 OK +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/power {'target': 'soft power off'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-5adf6d24-7653-4dd5-8f12-222d977abd2a +Openstack-Request-Id: req-70127e61-64af-48d1-bde1-d5699e8270a3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "631526c2-ae67-4b45-b076-4984dc7c3a8d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/631526c2-ae67-4b45-b076-4984dc7c3a8d", "rel": "self"}, {"href": "http://localhost/nodes/631526c2-ae67-4b45-b076-4984dc7c3a8d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/631526c2-ae67-4b45-b076-4984dc7c3a8d/ports", "rel": "self"}, {"href": "http://localhost/nodes/631526c2-ae67-4b45-b076-4984dc7c3a8d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/631526c2-ae67-4b45-b076-4984dc7c3a8d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/631526c2-ae67-4b45-b076-4984dc7c3a8d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/631526c2-ae67-4b45-b076-4984dc7c3a8d/volume", "rel": "self"}, {"href": "http://localhost/nodes/631526c2-ae67-4b45-b076-4984dc7c3a8d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/631526c2-ae67-4b45-b076-4984dc7c3a8d/states", "rel": "self"}, {"href": "http://localhost/nodes/631526c2-ae67-4b45-b076-4984dc7c3a8d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:02.843598+00:00"} -PATCH: /v1/nodes/dd44fde1-818b-40db-83f2-d588cd164a36 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +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: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-7923fac0-ce6e-4879-bac0-cee0d52b30ad +Openstack-Request-Id: req-47d041fb-5181-4b13-ac93-12cd165cbc40 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "dd44fde1-818b-40db-83f2-d588cd164a36", "instance_uuid": null, "power_state": null, "target_power_state": "power off", "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/dd44fde1-818b-40db-83f2-d588cd164a36", "rel": "self"}, {"href": "http://localhost/nodes/dd44fde1-818b-40db-83f2-d588cd164a36", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/dd44fde1-818b-40db-83f2-d588cd164a36/ports", "rel": "self"}, {"href": "http://localhost/nodes/dd44fde1-818b-40db-83f2-d588cd164a36/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:03.115989+00:00"} -PATCH: /v1/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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-160ac788-50f1-4658-b0db-08ebba5475e1 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 + +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3c97e92c-f75f-4ee0-ba84-6bc9bdc2aa99 +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +PUT: /v1/nodes/node-39/traits {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-8cee9439-170b-4129-a67c-e072c536904b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "5c1cec13-01b3-4683-9929-3f9d265c9441", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441", "rel": "self"}, {"href": "http://localhost/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441/ports", "rel": "self"}, {"href": "http://localhost/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441/volume", "rel": "self"}, {"href": "http://localhost/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441/states", "rel": "self"}, {"href": "http://localhost/nodes/5c1cec13-01b3-4683-9929-3f9d265c9441/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:03.376958+00:00"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', '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, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A single node trait may be added via PUT /v1/nodes//traits/ with no body, or all node traits may be replaced via PUT /v1/nodes//traits with the list of traits specified in the request body.\", \"debuginfo\": null}"} +GET: /v1/ports?node=test-node {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-91fe4f42-495f-426e-a257-cf242e75cbaa +Openstack-Request-Id: req-02f52f73-8d5c-45e7-879c-7aa02a0a87e0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:03.752589+00:00"}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_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.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.TestPut.test_abort_cleanwait -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail ... ok - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:57.641514+00:00', 'updated_at': None}]} +GET: /v1/ports/detail {} +GOT:{'ports': [{'uuid': 'd22ca670-6353-4f0e-9e0c-5bb5b1b5cb59', 'address': '66:44:55:33:11:22', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/d22ca670-6353-4f0e-9e0c-5bb5b1b5cb59', 'rel': 'self'}, {'href': 'http://localhost/ports/d22ca670-6353-4f0e-9e0c-5bb5b1b5cb59', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:57.851636+00:00', 'updated_at': None}]} +GET: /v1/ports?address=aa:bb:cc:dd:ee:ff {} +GOT:{'ports': []} +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-e60f20da-6ca8-4aa4-907c-92d268415e86 +Openstack-Request-Id: req-f33a9ecf-11cd-4ec9-a1d2-db20b5a9892a X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/power {'target': 'power on', 'timeout': 2} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '58ed54f9-cdd2-472c-a9e6-a4b75b170da7', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-70865a04-66a4-4298-a737-cb4440a9d6e1 +Openstack-Request-Id: req-35f794b3-dba4-45b3-8efd-acc1bc10fc0d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.26 +X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/d977cd70-7ab4-4faa-96de-9eead33569fd [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-c5194565-0bf6-4563-8f05-83cd64246d82 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port d977cd70-7ab4-4faa-96de-9eead33569fd could not be found.\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': 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-3222cbec-8e83-4231-9269-aec60ac5aa35 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.842393+00:00", "updated_at": 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, '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.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_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.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. + +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-c8758634-fd92-4578-8ca4-1c3280eafcfe +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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-da842d65-5a6f-4e2a-afb6-a671fa842f07 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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-c9de14da-5e58-47fb-bf39-38d435b52743 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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-8fcfc109-77de-4d6a-8894-275e6ec903a0 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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-f8199f3b-a8a7-41a2-99cf-e4edeee554d0 +Openstack-Request-Id: req-e0b24124-9c98-4068-aa67-ee93ce4ee22f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -7305,7 +7544,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-7805c49e-33ce-482a-95d1-b38f333d4668 +Openstack-Request-Id: req-7a60c3f1-10bd-4e83-a0e0-120102327fc0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -7313,7 +7552,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-13757f7b-4f9d-42ad-a9ac-7c30cc99ebf0 +Openstack-Request-Id: req-0e1ced72-5c7c-4eab-8166-5d24eb559861 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -7321,7308 +7560,6810 @@ 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-609dd76b-b2ad-489b-9f6a-c1afc39239fb +Openstack-Request-Id: req-cea2d759-5015-4522-b1e3-b527f60480d7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 +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-b819cb74-c665-47cc-87a6-72268fdb370b +Openstack-Request-Id: req-3c011123-c4bf-4e32-9715-4aee4bd3d7bb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.4 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is only valid when setting target provision state to clean\", \"debuginfo\": null}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: /v1/ports?detail=True {} +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/console {'enabled': 'true'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-91a0a096-24ee-45c0-a337-0c0f9ba236f2 +Openstack-Request-Id: req-0c4a4635-05be-450b-800b-6051cbaef370 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:05.651254+00:00', 'updated_at': None}]} -GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4&node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} +GET: /v1/ports/detail?sort_key=pxe_enabled {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-e18a224a-f55a-4c89-9291-c7a22d151bf8 +Openstack-Request-Id: req-f2d7cc6f-29fb-4243-b970-c0acd340513f X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:05.997650+00:00', 'updated_at': None} +X-Openstack-Ironic-Api-Version: 1.18 +{"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-5d3b23b8-f8ed-4b93-8674-0737d8dc5cb3 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'pxe_enabled': True, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:05.997650+00:00', 'updated_at': None} -GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} -GOT:Response: 404 Not Found +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:57.670930+00:00', 'updated_at': None} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] +Openstack-Request-Id: req-d490f47e-76c2-40a7-ba7c-e68a1b20372e +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b2396370-53ba-4381-8bfd-40d5091fb744 +Openstack-Request-Id: req-a019d297-ee23-4108-a602-f9585cdc5870 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\", \"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-889da714-0af2-4d44-ad5f-01a28ee7cf61 +Openstack-Request-Id: req-1a1c297a-aabb-4869-a603-e0833516839d X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"}ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post ... ok +X-Openstack-Ironic-Api-Version: 1.34 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}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_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_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.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 +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id ... 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_types.TestJsonPatchType.test_valid_patches +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid +ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_dynamic_drivers +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_dynamic_drivers ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_network_interface +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_traits +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_traits ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name ... ok +ironic.tests.unit.api.controllers.v1.test_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_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.TestGetVolume.test_get_volume_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version ... ok -GOT:Response: 201 Created +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-0adaf42f-5468-4488-b936-79cd599655be +Openstack-Request-Id: req-9e57672a-1e93-445b-ba9a-afffdea3373b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:03.190898+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:10:03.190898+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "d125a974-0930-48cb-9178-03adc279f4fa", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "original"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/d125a974-0930-48cb-9178-03adc279f4fa", "rel": "self"}, {"href": "http://localhost/ports/d125a974-0930-48cb-9178-03adc279f4fa", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.141437+00:00", "updated_at": "2021-12-04T17:53:55.242327+00:00"} +PATCH: /v1/ports/ca36c3fa-e3a2-4f89-b7c3-94dfd5002ce3 [{'path': '/extra/vif_port_id', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-262e62ef-51aa-43f8-99db-0d80b20de699 +Openstack-Request-Id: req-796ac9c4-0c05-4489-8c74-c6d4dae2dccf +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.28 +{"uuid": "ca36c3fa-e3a2-4f89-b7c3-94dfd5002ce3", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/ca36c3fa-e3a2-4f89-b7c3-94dfd5002ce3", "rel": "self"}, {"href": "http://localhost/ports/ca36c3fa-e3a2-4f89-b7c3-94dfd5002ce3", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.420086+00:00", "updated_at": "2021-12-04T17:53:55.536153+00:00"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'op': 'remove'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-07f87ae0-c007-43f4-87ce-f7a7d2598269 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:03.492807+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2023-01-07T00:10:03.492807+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_validation_failed_missing_parameter_value ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_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_node.TestPut.test_set_boot_device -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent ... 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.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_port.TestDelete.test_delete_port_byid -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ... 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.TestPatch.test_add_extra_vif_port_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_no_internal -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_no_internal ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid ... ok - -GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, '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', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:04.578405+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.812509+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} -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 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:05.324551+00:00'} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +{"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-1e4ac41b-c4f9-4a8e-8718-495e206686fc +Openstack-Request-Id: req-98e58d2e-87fd-4dc3-aa46-61158e357388 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} -PATCH: /v1/nodes/c0388bb1-9724-43bc-b4bc-2388f0fb810c [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} +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-c305c226-7be4-4ff6-9849-174caaab4dae +Openstack-Request-Id: req-8af7771a-2b4d-4100-99ae-15695916f1a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "c0388bb1-9724-43bc-b4bc-2388f0fb810c", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "deploy failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "active", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c0388bb1-9724-43bc-b4bc-2388f0fb810c", "rel": "self"}, {"href": "http://localhost/nodes/c0388bb1-9724-43bc-b4bc-2388f0fb810c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c0388bb1-9724-43bc-b4bc-2388f0fb810c/ports", "rel": "self"}, {"href": "http://localhost/nodes/c0388bb1-9724-43bc-b4bc-2388f0fb810c/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:05.747633+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ... ok - -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} +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-9751612a-59ed-423d-aabf-cb76b00caf73 +Openstack-Request-Id: req-a2bbb559-61a3-4798-8f0c-21e41266e8a8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"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, '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-c6296f2b-da04-4c37-af26-5f996ea3faae +Openstack-Request-Id: req-cddf2c8c-ebfa-492b-91ad-fbfb81e7f351 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:04.353753+00:00", "updated_at": null} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-53e6b0eb-b08f-461c-8b2d-ed038e4bafda +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-e7d59303-2457-426a-9e37-e4e2b47d7561 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:04.554040+00:00", "updated_at": null} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:57.894767+00:00", "updated_at": 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, '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-74d5aa68-6ec2-457d-86ff-bce94e634a7c +Openstack-Request-Id: req-b9375964-3ef8-4b29-b247-8b0bc5c040fc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": false, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:04.771199+00:00", "updated_at": null} -POST: /v1/heartbeat/c9eda6e2-0a5e-48da-a24a-d99ed2325f08 {'callback_url': 'url'} -GOT:Response: 404 Not Found +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': 'physnet1', '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-f5c668fc-8b2a-459b-a66c-5c5abeeb7db2 +Openstack-Request-Id: req-91c34976-d2c3-4dc1-beef-93bc0b4967c7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node c9eda6e2-0a5e-48da-a24a-d99ed2325f08 could not be found.\", \"debuginfo\": null}"} -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.33 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +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?sort_key=mode {} +GOT:{'portgroups': [{'uuid': 'fd41fa75-b871-4913-8219-74ebaf400a3b', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/fd41fa75-b871-4913-8219-74ebaf400a3b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fd41fa75-b871-4913-8219-74ebaf400a3b', 'rel': 'bookmark'}]}, {'uuid': '3e111cb3-f604-4925-a558-6b9f38e15130', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/3e111cb3-f604-4925-a558-6b9f38e15130', 'rel': 'self'}, {'href': 'http://localhost/portgroups/3e111cb3-f604-4925-a558-6b9f38e15130', 'rel': 'bookmark'}]}, {'uuid': '3a941ea1-4ec8-4880-9065-b88dc76ae4f3', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/3a941ea1-4ec8-4880-9065-b88dc76ae4f3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/3a941ea1-4ec8-4880-9065-b88dc76ae4f3', 'rel': 'bookmark'}]}]}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.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPortgroupObject.test_portgroup_init +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPortgroupObject.test_portgroup_init ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.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_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_types.TestUuidOrNameType.test_valid_name +ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_name ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_uuid +ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_conductor_group +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_conductor_group ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_remove_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_remove_chassis_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success ... ok +ironic.tests.unit.api.controllers.v1.test_utils.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_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_utils.TestPortgroupIdent.test_get_rpc_portgroup_name +ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name ... ok + +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": "404 Not Found\n\nThe resource could not be found.\n\n "} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/value', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"error_message": "405 Method Not Allowed\n\nThe method PUT is not allowed for this resource. \n\n "} +PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} +GOT:Response: 204 No Content +Openstack-Request-Id: req-8e06ee93-d04d-45e4-bfec-70376b5fcd1f +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.37 + +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'}]}]} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'bb60f2e2-f4f5-4dd0-821d-b31e8313e8b8', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b8f59236-ef26-48dc-a471-a7184bfe3399 +Openstack-Request-Id: req-75df75c5-384c-48e8-bd3d-7db21a049584 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/value', 'op': 'remove'}]'. Reason: can't remove non-existent object 'value'\", \"debuginfo\": null}"} -GET: /v1/volume/targets?detail=True {} -GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:06.541888+00:00', 'updated_at': None}]} -GET: /v1/volume/targets {} -GOT:{'targets': [{'uuid': '332fba18-b5c4-4665-8d65-44cdd5b4c8b1', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/332fba18-b5c4-4665-8d65-44cdd5b4c8b1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/332fba18-b5c4-4665-8d65-44cdd5b4c8b1', 'rel': 'bookmark'}]}, {'uuid': '9edffb45-4540-40d1-9737-55225bf9ae96', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/9edffb45-4540-40d1-9737-55225bf9ae96', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9edffb45-4540-40d1-9737-55225bf9ae96', 'rel': 'bookmark'}]}, {'uuid': '8f05e083-cb3b-4b2a-9606-f17576d5101f', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/8f05e083-cb3b-4b2a-9606-f17576d5101f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8f05e083-cb3b-4b2a-9606-f17576d5101f', 'rel': 'bookmark'}]}, {'uuid': 'e724bbc1-522d-450d-aa0d-fc50a2b1f8a9', 'volume_type': 'iscsi', 'boot_index': 3, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/e724bbc1-522d-450d-aa0d-fc50a2b1f8a9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e724bbc1-522d-450d-aa0d-fc50a2b1f8a9', 'rel': 'bookmark'}]}, {'uuid': '69a69f0c-2b9d-4644-b0fa-ffdc51808b1b', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/69a69f0c-2b9d-4644-b0fa-ffdc51808b1b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/69a69f0c-2b9d-4644-b0fa-ffdc51808b1b', 'rel': 'bookmark'}]}]} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.24 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "bb60f2e2-f4f5-4dd0-821d-b31e8313e8b8", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.096111+00:00", "updated_at": "2021-12-04T17:53:55.185827+00:00"} +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-6b4b38d0-8736-4370-b176-b451777f7cc0 +Openstack-Request-Id: req-7050b708-f593-4339-9170-836a6f2a2312 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.885505+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_type ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping ... ok -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks ... 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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed ... ok -ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id -ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected ... ok -ironic.tests.unit.common.test_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.common.test_image_service.FileImageServiceTestCase.test_download_copy -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_ioerror -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_ioerror ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_extra -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_extra ... ok -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate ... ok -ironic.tests.unit.common.test_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.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id ... ok -ironic.tests.unit.common.test_neutron.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_policy.PolicyInCodeTestCase.test_public_api -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk ... ok -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... ok -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found ... ok -ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST -ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id ... ok -ironic.tests.unit.common.test_utils.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.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.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names ... ok -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ... ok -ironic.tests.unit.conductor.test_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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ... ok -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps ... ok -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps_old_rpc -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps_old_rpc ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state ... ok -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes ... ok -ironic.tests.unit.conductor.test_manager.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.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.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties ... ok -ironic.tests.unit.conductor.test_manager.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.SensorsTestCase.test_send_sensor_task -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task ... 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.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 - -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'neutron', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.19 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.363384+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-483ac7e0-2176-462c-b900-9a21a9eeec32 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-a50ed069-0cc9-482a-a3f0-fba88acba9c6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.20 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": "neutron", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'neutron', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': 'maintenance', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:55.905810+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-33a3afd9-a911-4dc3-85c4-e19ca96ce603 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-ff8825ad-0475-4611-97cb-fd35e7fd14fd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.10 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} -POST: /v1/nodes {'name': 'management', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:56.196696+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-70a23a2b-2a61-4c46-a6e1-005f2fd0b526 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-75800a6a-82b7-4249-81f0-ef80304217c4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:56.696168+00:00", "updated_at": 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, '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-d314dafc-0478-4253-bd65-513d5f020085 +Openstack-Request-Id: req-1f7d969d-325e-42a8-a051-775c017f6307 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.14 +{"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-2e849cf8-8300-4d46-b891-1b5adda63d67 +Openstack-Request-Id: req-aa562fca-2b6f-42dc-bcd5-fb9024e08c61 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}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_node.TestPost.test_post_ports_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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_node.TestPut.test_provision_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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_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_port.TestListPorts.test_get_all_by_node_uuid_and_name -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_port.TestPatch.test_replace_local_link_connection -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ... ok +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/portgroups?address=aa:bb:cc:dd:ee:f1 {}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid ... 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_ramdisk.TestHeartbeat.test_old_api_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values +ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values +ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_dict_attr +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_dict_attr ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_none +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_none ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_rescue_interface_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_rescue_interface_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success ... ok +ironic.tests.unit.api.controllers.v1.test_utils.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_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_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type ... ok +ironic.tests.unit.api.controllers.v1.test_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 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 0} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} +GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '2000-01-01T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error', 'raid_config': {'foo': 'bar'}, 'target_raid_config': {'foo': 'bar'}} +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-9952fb88-27fe-452a-8348-921212643726 +Openstack-Request-Id: req-85969463-bfe7-4a25-93c7-958cd37d9dad X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 +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 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d6841072-e67c-45b6-8b65-9fc5279aad4f +Openstack-Request-Id: req-7e52dd8f-1c36-4b74-8d98-7b01578bd8a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'soft power off'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-0fc973bf-fe61-462c-84ce-e273cac92cc3 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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': 'active'} -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.167803+00:00"} +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-4fa14bf6-9df9-4330-8fb6-d1985a601f32 +Openstack-Request-Id: req-14ed734d-61d2-4212-9f86-dd4ce5a300a1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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-1fb02176-0883-4819-b9c5-10873f99ce49 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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': 'not-supported'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.756849+00:00"} +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-a4861c80-c2a6-49bd-b727-b70d8e87909a +Openstack-Request-Id: req-f293bab6-a6a1-4272-9091-3629acb5e158 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/provision_updated_at' is an internal attribute and can not be updated\", \"debuginfo\": null}"} +PATCH: /v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e99cc3fa-4464-4374-a997-18b8fd1ccbe0 +Openstack-Request-Id: req-16f1c7f1-96e6-4201-8d77-59c6699f27f6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The provisioning operation can't be performed on node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 because it's in maintenance mode.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': ' '} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb4a154-253c-48dd-b4b1-289c7aa9fbaf", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf", "rel": "self"}, {"href": "http://localhost/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/ports", "rel": "self"}, {"href": "http://localhost/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/volume", "rel": "self"}, {"href": "http://localhost/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/states", "rel": "self"}, {"href": "http://localhost/nodes/6eb4a154-253c-48dd-b4b1-289c7aa9fbaf/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:57.706651+00:00"} +PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b81f7281-8a15-494f-9171-9abff5011c14 +Openstack-Request-Id: req-8c3a61b5-e143-4278-b8ca-2a78abd03adb X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -GET: /v1/ports/?limit=3 {} -GOT:{'ports': [{'uuid': '0784021e-06d8-4104-bcf9-6647b91c47eb', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/0784021e-06d8-4104-bcf9-6647b91c47eb', 'rel': 'self'}, {'href': 'http://localhost/ports/0784021e-06d8-4104-bcf9-6647b91c47eb', 'rel': 'bookmark'}]}, {'uuid': '29673d00-d9b3-4ab5-b7ea-c1da407be98f', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/29673d00-d9b3-4ab5-b7ea-c1da407be98f', 'rel': 'self'}, {'href': 'http://localhost/ports/29673d00-d9b3-4ab5-b7ea-c1da407be98f', 'rel': 'bookmark'}]}, {'uuid': '9fc2e6f4-b967-4c8a-a982-eec849cdefca', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/9fc2e6f4-b967-4c8a-a982-eec849cdefca', 'rel': 'self'}, {'href': 'http://localhost/ports/9fc2e6f4-b967-4c8a-a982-eec849cdefca', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=3&marker=9fc2e6f4-b967-4c8a-a982-eec849cdefca'} -GET: /v1/ports?node=test-node {} -GOT:{'ports': [{'uuid': '1d9da2d2-9044-4342-a975-9e6bdaac7824', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/1d9da2d2-9044-4342-a975-9e6bdaac7824', 'rel': 'self'}, {'href': 'http://localhost/ports/1d9da2d2-9044-4342-a975-9e6bdaac7824', 'rel': 'bookmark'}]}, {'uuid': '853fc406-717b-46c4-9ee0-21fe03214f1d', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/853fc406-717b-46c4-9ee0-21fe03214f1d', 'rel': 'self'}, {'href': 'http://localhost/ports/853fc406-717b-46c4-9ee0-21fe03214f1d', 'rel': 'bookmark'}]}, {'uuid': '2f532793-9d4a-44a5-add1-2bd94fa2d261', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/2f532793-9d4a-44a5-add1-2bd94fa2d261', 'rel': 'self'}, {'href': 'http://localhost/ports/2f532793-9d4a-44a5-add1-2bd94fa2d261', 'rel': 'bookmark'}]}]} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:06.721032+00:00', 'updated_at': None} -GET: /v1/ports/346630ff-1c64-4757-a526-69b06f6bb86d {} -GOT:{'uuid': '346630ff-1c64-4757-a526-69b06f6bb86d', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/346630ff-1c64-4757-a526-69b06f6bb86d', 'rel': 'self'}, {'href': 'http://localhost/ports/346630ff-1c64-4757-a526-69b06f6bb86d', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:06.883971+00:00', 'updated_at': None} -GET: /v1/ports/346630ff-1c64-4757-a526-69b06f6bb86d {} -GOT:{'uuid': '346630ff-1c64-4757-a526-69b06f6bb86d', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/346630ff-1c64-4757-a526-69b06f6bb86d', 'rel': 'self'}, {'href': 'http://localhost/ports/346630ff-1c64-4757-a526-69b06f6bb86d', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:06.883971+00:00', 'updated_at': None} -GET: /ports/346630ff-1c64-4757-a526-69b06f6bb86d {} -GOT:{'uuid': '346630ff-1c64-4757-a526-69b06f6bb86d', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/346630ff-1c64-4757-a526-69b06f6bb86d', 'rel': 'self'}, {'href': 'http://localhost/ports/346630ff-1c64-4757-a526-69b06f6bb86d', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:06.883971+00:00', 'updated_at': None} -GET: /v1/ports/detail {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:07.182024+00:00', 'updated_at': None}]}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_deprecated -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_deprecated ... 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_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_port.TestPatch.test_replace_portgroup_uuid_old_api -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_cannot_send_create_port -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_cannot_send_create_port ... 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_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_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_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_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.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.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ... ok - -GET: /v1/nodes/detail?fault=power failure {} +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-1b2c7b56-16b6-4ff7-9eec-7a061df86d3e +Openstack-Request-Id: req-a90e1239-856f-444c-9eeb-3b993ad0b2d9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:10:03.776496+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:03.990523+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': '2015-03-18T19:20:00+00:00', 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:03.990523+00:00'} -GET: /v1/nodes/detail?limit=3&associated=true {} -GOT:{'nodes': [{'uuid': '6ed15f81-80cd-4f9d-b316-2dc08bea82d0', 'instance_uuid': '90be4b0d-de0a-4ef5-88c8-aee330e0e449', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/6ed15f81-80cd-4f9d-b316-2dc08bea82d0', 'rel': 'self'}, {'href': 'http://localhost/nodes/6ed15f81-80cd-4f9d-b316-2dc08bea82d0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/6ed15f81-80cd-4f9d-b316-2dc08bea82d0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6ed15f81-80cd-4f9d-b316-2dc08bea82d0/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.318253+00:00'}, {'uuid': '2e0c46b7-8379-4640-a5dd-3107dd7c9b74', 'instance_uuid': 'ecd237ad-9f93-41a4-9f0e-224e5e9c8bd0', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/2e0c46b7-8379-4640-a5dd-3107dd7c9b74', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e0c46b7-8379-4640-a5dd-3107dd7c9b74', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/2e0c46b7-8379-4640-a5dd-3107dd7c9b74/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e0c46b7-8379-4640-a5dd-3107dd7c9b74/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.322517+00:00'}, {'uuid': 'e8c59fdc-7fe8-405c-80ab-9a20c5a5605b', 'instance_uuid': '41ca701f-944c-4f2a-9b9d-b3e75989cf6a', 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/e8c59fdc-7fe8-405c-80ab-9a20c5a5605b', 'rel': 'self'}, {'href': 'http://localhost/nodes/e8c59fdc-7fe8-405c-80ab-9a20c5a5605b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e8c59fdc-7fe8-405c-80ab-9a20c5a5605b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e8c59fdc-7fe8-405c-80ab-9a20c5a5605b/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.326747+00:00'}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=e8c59fdc-7fe8-405c-80ab-9a20c5a5605b'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association_with_detail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_empty_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_name_twice_second_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_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.TestPatch.test_replace_chassis_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api ... ok +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}]ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long ... ok ironic.tests.unit.api.controllers.v1.test_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_node.TestPost.test_post_volume_targets_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.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 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'foo': 'bar'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:03.117241+00:00'} -GET: /v1/nodes/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:03.430303+00:00'}]} -GET: /v1/nodes/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:03.430303+00:00'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:03.777586+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:10:03.777586+00:00'} -GET: /v1/nodes/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:03.129184+00:00'}]} -GET: /v1/nodes/detail {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2023-01-07T00:10:03.129184+00:00'}]} -GET: /v1/nodes?associated=true&maintenance=false {} -GOT:{'nodes': [{'uuid': '8b7d21d4-d0f2-40cc-9edb-2b70a8880ccb', 'instance_uuid': 'f54089a9-0903-4619-8638-85bb482ffddf', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8b7d21d4-d0f2-40cc-9edb-2b70a8880ccb', 'rel': 'self'}, {'href': 'http://localhost/nodes/8b7d21d4-d0f2-40cc-9edb-2b70a8880ccb', 'rel': 'bookmark'}]}, {'uuid': 'f4db3e59-7b64-475e-bfae-59bcacffcf86', 'instance_uuid': '43ea2b77-8693-4c03-b5ca-bb89c5bb4504', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f4db3e59-7b64-475e-bfae-59bcacffcf86', 'rel': 'self'}, {'href': 'http://localhost/nodes/f4db3e59-7b64-475e-bfae-59bcacffcf86', 'rel': 'bookmark'}]}, {'uuid': 'bbaf7e55-6773-4609-a87c-235ea80ee2a6', 'instance_uuid': '24f2efb7-b5de-47f0-a25c-85868b8b0888', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bbaf7e55-6773-4609-a87c-235ea80ee2a6', 'rel': 'self'}, {'href': 'http://localhost/nodes/bbaf7e55-6773-4609-a87c-235ea80ee2a6', 'rel': 'bookmark'}]}, {'uuid': 'a3719db8-975d-4ac6-b231-8164c045d159', 'instance_uuid': '6c8ebc51-4267-4f04-ab3b-1f0a6b3552d4', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a3719db8-975d-4ac6-b231-8164c045d159', 'rel': 'self'}, {'href': 'http://localhost/nodes/a3719db8-975d-4ac6-b231-8164c045d159', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=true&maintenance=true {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': 'd47ef909-a6ae-443f-9347-c1b736cccb08', 'power_state': None, 'provision_state': None, 'maintenance': 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?associated=true&maintenance=TruE {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': 'd47ef909-a6ae-443f-9347-c1b736cccb08', 'power_state': None, 'provision_state': None, 'maintenance': 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?instance_uuid=022292f3-3d54-4e76-8373-ab57818d723e {} -GOT:{'nodes': []} -GET: /v1/nodes/validate?node=spam {} -GOT:{} -GET: /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{} -PATCH: /v1/nodes/a30db096-c64e-4089-92ae-02691b20dc02 [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-e9ca44d7-be42-4b44-8ad2-079a2d82773c -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.44 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/deploy_step' is an internal attribute and can not be updated\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-f8ed968e-2ae5-4a1e-945a-be65d84278e8 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-135f120f-f455-4287-a5ff-623c2540f3cd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.093171+00:00", "updated_at": null} +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, '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-46c37c27-1ae1-43c3-9d83-9476b97cd74c +Openstack-Request-Id: req-e4f102aa-f3af-4a15-876d-33bdb41f9d93 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/portgroups/detail?sort_key=mode {} +GOT:{'portgroups': [{'uuid': '39e032b0-08d0-4b8c-8229-c9425a90a090', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/39e032b0-08d0-4b8c-8229-c9425a90a090', 'rel': 'self'}, {'href': 'http://localhost/portgroups/39e032b0-08d0-4b8c-8229-c9425a90a090', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_1', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/39e032b0-08d0-4b8c-8229-c9425a90a090/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/39e032b0-08d0-4b8c-8229-c9425a90a090/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.499658+00:00', 'updated_at': None}, {'uuid': '91167ccd-8ae5-422d-8a39-d201c9ad1da1', 'address': '52:54:00:cf:2d:32', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/91167ccd-8ae5-422d-8a39-d201c9ad1da1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/91167ccd-8ae5-422d-8a39-d201c9ad1da1', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_2', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/91167ccd-8ae5-422d-8a39-d201c9ad1da1/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/91167ccd-8ae5-422d-8a39-d201c9ad1da1/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.497918+00:00', 'updated_at': None}, {'uuid': 'cf5fadda-6ff7-4b72-968e-f2ef51266b0a', 'address': '52:54:00:cf:2d:33', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/cf5fadda-6ff7-4b72-968e-f2ef51266b0a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/cf5fadda-6ff7-4b72-968e-f2ef51266b0a', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_3', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/cf5fadda-6ff7-4b72-968e-f2ef51266b0a/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/cf5fadda-6ff7-4b72-968e-f2ef51266b0a/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.496209+00:00', 'updated_at': None}]} +GET: /v1/portgroups/?fields=address,properties {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-8f860b6e-abd3-42fd-b765-ec99c200a060 +Openstack-Request-Id: req-17197f83-b380-42e8-a9fb-ff69c5b5cdc0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2023-01-07T00:10:05.482675+00:00"}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.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_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_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.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.TestPost.test_create_node_invalid_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface ... ok -ironic.tests.unit.conductor.test_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.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found ... ok - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'vendor_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:04.508547+00:00'} -GET: /v1/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5 {} -GOT:{'uuid': '2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5', 'rel': 'self'}, {'href': 'http://localhost/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.785488+00:00'} -GET: /v1/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5 {} -GOT:{'uuid': '2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5', 'rel': 'self'}, {'href': 'http://localhost/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.785488+00:00'} -GET: /nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5 {} -GOT:{'uuid': '2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5', 'rel': 'self'}, {'href': 'http://localhost/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2ce3743f-7daf-4d6b-9b35-c5cc57d1e1a5/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.785488+00:00'} -GET: /v1/nodes?associated=false {} -GOT:{'nodes': [{'uuid': '3cfba859-0e9e-4970-8680-a158e094b7bd', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3cfba859-0e9e-4970-8680-a158e094b7bd', 'rel': 'self'}, {'href': 'http://localhost/nodes/3cfba859-0e9e-4970-8680-a158e094b7bd', 'rel': 'bookmark'}]}, {'uuid': 'f5397117-2358-4f5c-8384-0882d9f13b16', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f5397117-2358-4f5c-8384-0882d9f13b16', 'rel': 'self'}, {'href': 'http://localhost/nodes/f5397117-2358-4f5c-8384-0882d9f13b16', 'rel': 'bookmark'}]}, {'uuid': 'd31f0747-98f1-40ce-abaf-728e6d6279f8', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d31f0747-98f1-40ce-abaf-728e6d6279f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/d31f0747-98f1-40ce-abaf-728e6d6279f8', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=FALSE {} -GOT:{'nodes': [{'uuid': '3cfba859-0e9e-4970-8680-a158e094b7bd', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3cfba859-0e9e-4970-8680-a158e094b7bd', 'rel': 'self'}, {'href': 'http://localhost/nodes/3cfba859-0e9e-4970-8680-a158e094b7bd', 'rel': 'bookmark'}]}, {'uuid': 'f5397117-2358-4f5c-8384-0882d9f13b16', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f5397117-2358-4f5c-8384-0882d9f13b16', 'rel': 'self'}, {'href': 'http://localhost/nodes/f5397117-2358-4f5c-8384-0882d9f13b16', 'rel': 'bookmark'}]}, {'uuid': 'd31f0747-98f1-40ce-abaf-728e6d6279f8', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d31f0747-98f1-40ce-abaf-728e6d6279f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/d31f0747-98f1-40ce-abaf-728e6d6279f8', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/volume/connectors {} -GOT:Response: 404 Not Found +{"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-ff85bbc1-db75-45f2-8e8d-fcf08d5d47ca +Openstack-Request-Id: req-4a62c196-eea5-4e74-aa07-75214722cf8e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_noid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ... 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 - -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/portgroups?sort_key=uuid {} +GOT:{'portgroups': [{'uuid': '5b7a2d6d-4540-446e-8287-f28fc26d0a9a', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/5b7a2d6d-4540-446e-8287-f28fc26d0a9a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5b7a2d6d-4540-446e-8287-f28fc26d0a9a', 'rel': 'bookmark'}]}, {'uuid': 'bbb3ab70-1cf7-40c2-acc9-5ee6e0b3011c', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/bbb3ab70-1cf7-40c2-acc9-5ee6e0b3011c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bbb3ab70-1cf7-40c2-acc9-5ee6e0b3011c', 'rel': 'bookmark'}]}, {'uuid': 'da2ab76e-5d53-45b8-a28a-3308ea083aed', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/da2ab76e-5d53-45b8-a28a-3308ea083aed', 'rel': 'self'}, {'href': 'http://localhost/portgroups/da2ab76e-5d53-45b8-a28a-3308ea083aed', 'rel': 'bookmark'}]}]} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/non-existent', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-ce94fef6-fd74-4cdf-9523-916531abea2e +Openstack-Request-Id: req-c23bd2a2-a47e-431d-bfeb-3e95b44312b9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:03.575839+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:03.575839+00:00'} -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-620e5291-361f-4b79-abfb-518b9053c73d -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -DELETE: /v1/nodes/node-39/traits/CUSTOM_1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-9ed6e728-95ea-4d6d-9f8f-ed614a831fb3 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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}"} -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?sort_key=pxe_enabled {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-10981b39-5926-43e8-ba33-8ae1528de6ac -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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}"} -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-ea3a45df-7dfb-4303-91f9-4602981420a0 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/a4ea7890-b8ee-4c17-ae49-455e9800193a [{'path': '/extra/vif_port_id', 'op': 'remove'}] +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-83066baa-d6b5-4dd5-94e0-24732d33b72e +Openstack-Request-Id: req-82e3d99c-228c-4eeb-a987-3c84785ccc12 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 -{"uuid": "a4ea7890-b8ee-4c17-ae49-455e9800193a", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/a4ea7890-b8ee-4c17-ae49-455e9800193a", "rel": "self"}, {"href": "http://localhost/ports/a4ea7890-b8ee-4c17-ae49-455e9800193a", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:04.881532+00:00", "updated_at": "2023-01-07T00:10:05.023424+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "original"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.463536+00:00", "updated_at": "2021-12-04T17:54:01.579524+00:00"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.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_types.TestMacAddressType.test_invalid_mac_addr +ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_links_node_states_and_driver_properties +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_links_node_states_and_driver_properties ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi ... ok + +GET: /v1/nodes?sort_key=extra {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-03256ce7-2893-4ca7-81cf-4b188465dbe7 +Openstack-Request-Id: req-3f796c7c-6d0a-4042-b21a-639466640715 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.46 +{"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-28ce3ac6-f591-4da7-944c-12b0fdb8f52b +Openstack-Request-Id: req-fc42b45d-987f-46f9-92db-7c1867ff8a51 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:05.380164+00:00", "updated_at": "2023-01-07T00:10:05.500437+00:00"} -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', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value instance_info is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/nodes?sort_key=driver_internal_info {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-367cb22c-d9f9-45b7-8a7f-1329f74e2825 +Openstack-Request-Id: req-c2f1bb49-b321-44b8-837c-2403269424d5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\", \"debuginfo\": null}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id_deprecated -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id_deprecated ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_properties_field_lower_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_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.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.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_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_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_root.TestCheckVersions.test_check_version_ok -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_network_interface -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_advanced_net_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_advanced_net_fields ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_rescue_interface_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_rescue_interface_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync ... 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.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.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false ... ok -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync ... ok -ironic.tests.unit.conductor.test_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 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} -GOT:Response: 409 Conflict +{"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-c2e75f61-6a55-48ec-8aca-b892ceadc61c +Openstack-Request-Id: req-01fa4197-19e5-4ba0-829c-23755fdaf9f8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"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-e64bf2f5-6d24-436e-b411-f8fa4a41efd4 +Openstack-Request-Id: req-f9e6fadc-0b74-44b8-a1f1-41d1185cf6cd X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/nodes/validate?node=spam {} +GOT:{} +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-5f42aae3-70fa-4d23-9902-18fcc66eccc3 +Openstack-Request-Id: req-7b062f0e-0ad6-46bb-bd3d-8d2c461e2ee8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\", \"debuginfo\": null}"} +PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e7428baf-57c5-481c-a971-90ae544be9a7 +Openstack-Request-Id: req-fe6ba3ad-3c05-4f11-a1c6-d6c55ea16926 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.476337+00:00", "updated_at": "2023-01-07T00:10:06.536982+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} +PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-89c370b7-5474-48df-a1da-46f4b930fef5 +Openstack-Request-Id: req-5ede268f-7306-47ca-9efc-d7cc5840f724 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/address' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} -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'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} +PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1c3d5188-cbf4-42c9-9e81-1582448fe495 +Openstack-Request-Id: req-59ab00ae-2413-4f4a-9973-72edcb5953c2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.754334+00:00", "updated_at": "2023-01-07T00:10:06.833639+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} +PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2ec54179-7acb-4a41-ab7e-c5c182ae1c53 +Openstack-Request-Id: req-1d015013-9616-47a8-b3e2-58480149f667 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/pxe_enabled', 'value': True, 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} +PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-126b3c62-d494-4442-a4bd-e27adee1c35f +Openstack-Request-Id: req-fc7ce6f6-920c-4044-ba1e-af8a4830be04 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.19 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:07.266580+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} +PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-8bf98a58-d5d8-44e7-b6bd-1eca68bbec3a +Openstack-Request-Id: req-1fba0d6c-be9b-407d-aba4-0406f004a381 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:07.598179+00:00", "updated_at": null} -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 409 Conflict +{"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"}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_node.TestPatch.test_update_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface ... ok + +GET: /v1/ports?sort_key=foo {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-042d473c-2915-4696-8887-183f6454b693 +Openstack-Request-Id: req-c69a64db-5922-4dbd-a318-94c39c1b8a50 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.1', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:07.965993+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPortgroupObject.test_portgroup_init -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPortgroupObject.test_portgroup_init ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value -ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_valid_patches ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_volume_connector.TestPatch.test_remove_node_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok -ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check -ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ... ok -ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request -ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ... 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.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_bad_request ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default ... ok -ironic.tests.unit.conductor.test_utils.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.common.test_fsm.FSMTest.test_is_stable -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound ... ok -ironic.tests.unit.common.test_glance_service.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.common.test_glance_service.TestServiceUtils.test_get_glance_api_server -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_false -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_false ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_2 ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_no_refresh -ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_no_refresh ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_refresh -ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_refresh ... 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.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_images.FsImageTestCase.test_get_glance_image_properties_default_all -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all ... ok -ironic.tests.unit.common.test_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.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info ... ok -ironic.tests.unit.common.test_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.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.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception ... ok -ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered -ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_policy_not_registered ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url -ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url ... ok -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_md5_not_binary -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_md5_not_binary ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ... ok -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file ... ok -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ... ok -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled ... ok -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_invalid_provision_state ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort -ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive ... 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.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error ... ok -ironic.tests.unit.conductor.test_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.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears ... ok -ironic.tests.unit.conductor.test_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.conductor.test_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management -ironic.tests.unit.conductor.test_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management ... 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.conductor.test_manager.NmiTestCase.test_inject_nmi -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled ... 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.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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state ... ok -ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to delete the pending BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. -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 -ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to commit the pending BIOS changes for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. -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.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.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_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_update_volume_connector -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable ... ok -ironic.tests.unit.conductor.test_task_manager.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.TaskManagerTestCase.test_excl_lock_build_driver_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception ... ok - -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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"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-7707e663-75ee-45ee-a79a-7f66478ea2f2 +Openstack-Request-Id: req-7e1037a0-a8da-4ca9-8dad-9ea0ced40bfb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +{"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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-997b3d97-c72a-4609-bcdc-16d3d194ba41 +Openstack-Request-Id: req-0ab11ad7-e6b3-4215-b00d-05c60a43e083 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.959045+00:00", "updated_at": null} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 406 Not Acceptable +{"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-7a5df11e-4997-4d98-adc8-49aacb9b2315 +Openstack-Request-Id: req-fc564f59-3af2-401a-bee0-00cf827542c4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"} +PATCH: /v1/ports/c4190f58-42a1-403f-88bd-aba41c89e5c2 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bb11f993-56d9-4d7b-b4ed-946d23652136 +Openstack-Request-Id: req-163439af-9c0a-4e16-9c62-49a8f061aaa5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.24 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -GET: /v1/portgroups {} -GOT:{'portgroups': [{'uuid': 'a8702c67-c470-4274-a7f8-cdfd95c2757d', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/a8702c67-c470-4274-a7f8-cdfd95c2757d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a8702c67-c470-4274-a7f8-cdfd95c2757d', 'rel': 'bookmark'}]}, {'uuid': '7b661b9b-909b-450f-9248-ace6b465ade8', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/7b661b9b-909b-450f-9248-ace6b465ade8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7b661b9b-909b-450f-9248-ace6b465ade8', 'rel': 'bookmark'}]}, {'uuid': 'b2824983-4ef4-4f1c-8575-7dcad88d760b', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/b2824983-4ef4-4f1c-8575-7dcad88d760b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b2824983-4ef4-4f1c-8575-7dcad88d760b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=3&marker=b2824983-4ef4-4f1c-8575-7dcad88d760b'} -GET: /v1/portgroups/detail?node=test-node {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:07.863633+00:00', 'updated_at': None}]} -GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:08.083062+00:00', 'updated_at': None}]} -GET: /v1/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902 {} -GOT:{'uuid': '83e64c66-ecad-4346-9e36-d8ac35d6e902', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902', 'rel': 'self'}, {'href': 'http://localhost/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:08.286028+00:00', 'updated_at': None} -GET: /v1/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902 {} -GOT:{'uuid': '83e64c66-ecad-4346-9e36-d8ac35d6e902', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902', 'rel': 'self'}, {'href': 'http://localhost/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:08.286028+00:00', 'updated_at': None} -GET: /portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902 {} -GOT:{'uuid': '83e64c66-ecad-4346-9e36-d8ac35d6e902', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902', 'rel': 'self'}, {'href': 'http://localhost/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/83e64c66-ecad-4346-9e36-d8ac35d6e902/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:08.286028+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup ... ok -ironic.tests.unit.api.controllers.v1.test_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_portgroup.TestPost.test_create_portgroup_node_uuid_not_found -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_node_uuid_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker ... ok -ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps -ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps ... 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 - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', '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'}}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:03.752589+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "c4190f58-42a1-403f-88bd-aba41c89e5c2", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/c4190f58-42a1-403f-88bd-aba41c89e5c2", "rel": "self"}, {"href": "http://localhost/ports/c4190f58-42a1-403f-88bd-aba41c89e5c2", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.278873+00:00", "updated_at": "2021-12-04T17:53:59.412807+00:00"} +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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-d5c9f5bf-6e23-4aed-a8e4-c65703745225 +Openstack-Request-Id: req-edf17f1d-a4a6-43e6-91f0-4e119549069b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:04.132450+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'class1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2023-01-07T00:10:04.132450+00:00'} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.598248+00:00", "updated_at": "2021-12-04T17:53:59.697609+00:00"} +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-eaaea4b2-e639-4adc-9ae7-2b63d9f8da4b +Openstack-Request-Id: req-e208030c-33f3-42bb-8b43-f6d4dcc8da85 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/states/provision {'target': 'abort'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-143ba85a-23ea-4c5f-94e7-c9f41bed13e3 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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': 'adopt'} -GOT:Response: 406 Not Acceptable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.847793+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-f350b70a-aa28-4b7b-8f59-aa4af3c73ef3 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-b99b0037-8e27-42b4-9997-4c4c8a2808f0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:00.925080+00:00", "updated_at": null} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'aa:bb:cc:dd:ee:ff', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:00.925080+00:00', 'updated_at': None} +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, 'node_uuid': 'invalid-format', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a129da74-3cba-43d7-93ec-7b34d919b2f4 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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': 'rescue', 'rescue_password': 'password'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-c7ec4f8f-76b6-4333-bc24-7b716c97a459 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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-39247e2b-4174-4c0f-939c-68c48ef3b903 +Openstack-Request-Id: req-937d5388-dfed-431b-bd88-8e3212e40bdb X-Openstack-Ironic-Api-Maximum-Version: 1.46 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-56ab8e73-5a11-4d98-9d5d-ae184a39120a -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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-d40991dc-37dd-4b03-a510-bea077eb2eae +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 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': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', '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-f63eb189-1522-4b2d-85f2-17ffb57ba031 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_in_allowed_states ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_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_node.TestPut.test_unrescue_raises_error_before_1_38 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_fails_with_bad_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_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_notification_utils.APINotifyTestCase.test_chassis_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification ... 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.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow -ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow ... ok -ironic.tests.unit.api.controllers.v1.test_port.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 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_cannot_send_create_port +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_cannot_send_create_port ... 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_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify ... ok -ironic.tests.unit.conductor.test_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.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.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_portgroup.TestListPortgroups.test_detail +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_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.TestPost.test_create_portgroup_error +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ... ok -GET: /v1/nodes/detail?fault=clean failure {} -GOT:{'nodes': [{'uuid': '2e30a1d1-79d2-4d0b-ad1a-a4355c17815e', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': 'clean failure', 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e30a1d1-79d2-4d0b-ad1a-a4355c17815e/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:03.936948+00:00'}]} -GET: /v1/nodes/detail?resource_class=test {} -GOT:{'nodes': []} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.630080+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {'foo': 'bar'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:04.630080+00:00'} -GET: /v1/nodes?associated=true&maintenance=blah {} -GOT:Response: 400 Bad Request +GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-aa0ef8e5-1d55-435e-b250-cf93cd4ec462 +Openstack-Request-Id: req-8aa682cf-a743-4bc5-ad5d-0632e2720a2b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute maintenance. Value: 'blah'. unable to convert to boolean. Error: Unrecognized value 'blah', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} -GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': '31cc6f19-ada2-4211-97f0-dbdfcc0a9b92', 'instance_uuid': None, 'name': 'node-0', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/31cc6f19-ada2-4211-97f0-dbdfcc0a9b92', 'rel': 'self'}, {'href': 'http://localhost/nodes/31cc6f19-ada2-4211-97f0-dbdfcc0a9b92', 'rel': 'bookmark'}]}, {'uuid': 'be109ce0-03f9-4e2a-9a10-e05ee115285a', 'instance_uuid': None, 'name': 'node-1', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/be109ce0-03f9-4e2a-9a10-e05ee115285a', 'rel': 'self'}, {'href': 'http://localhost/nodes/be109ce0-03f9-4e2a-9a10-e05ee115285a', 'rel': 'bookmark'}]}, {'uuid': '27b1fe51-5305-4516-97b9-82746aacd111', 'instance_uuid': None, 'name': 'node-2', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/27b1fe51-5305-4516-97b9-82746aacd111', 'rel': 'self'}, {'href': 'http://localhost/nodes/27b1fe51-5305-4516-97b9-82746aacd111', 'rel': 'bookmark'}]}, {'uuid': 'c8d95c82-4081-4122-b160-29c9fb6af227', 'instance_uuid': None, 'name': 'node-3', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c8d95c82-4081-4122-b160-29c9fb6af227', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8d95c82-4081-4122-b160-29c9fb6af227', 'rel': 'bookmark'}]}, {'uuid': '0743761a-eaf6-4e7b-8cc3-d25f883bdb51', 'instance_uuid': None, 'name': 'node-4', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0743761a-eaf6-4e7b-8cc3-d25f883bdb51', 'rel': 'self'}, {'href': 'http://localhost/nodes/0743761a-eaf6-4e7b-8cc3-d25f883bdb51', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?instance_uuid=fake {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/34720c99-af37-4d16-bb9f-fcb1de6a90ac [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-84f0d58d-2b97-4ac5-afb0-a01b5e466710 +Openstack-Request-Id: req-50e34d7c-8f53-4fd2-86b8-09c5a680fd81 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute instance_uuid. Value: 'fake'. unable to convert to uuid. Error: Expected a UUID but received fake.\", \"debuginfo\": null}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:05.837838+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version ... ok -ironic.tests.unit.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_node.TestPatch.test_add_state_in_cleaning -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_update_drive_console_enabled ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ... ok - +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 34720c99-af37-4d16-bb9f-fcb1de6a90ac can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/4510286d-e033-48a7-bc9f-72c5d335bca4 [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-973fd1c0-e7da-48b6-88a6-b735fa724549 +Openstack-Request-Id: req-7f2c332a-7a60-432a-af8b-27c934fdbbe7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.42 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/fault' is an internal attribute and can not be updated\", \"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-69516fed-1512-4eaf-bec7-21458522cbe3 +Openstack-Request-Id: req-9f7ea599-b903-4a91-8c01-705cc68740dc X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.985054+00:00"} +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-42fea443-d3fa-470e-a573-f5e0633d4346 +Openstack-Request-Id: req-e119319a-55bd-49ba-b452-dbbd696706b8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -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-91fd57bf-3016-45ce-ad2b-dd4621dfe02e +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/chassis_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'chassis_id'\", \"debuginfo\": null}"} +PATCH: /v1/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-250ec988-6911-48d3-8bbb-f7714ab6f184 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'active'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.21 +{"uuid": "7b4a06fb-aaa8-4859-8e2b-835d87838f5c", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c", "rel": "self"}, {"href": "http://localhost/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c/states", "rel": "self"}, {"href": "http://localhost/nodes/7b4a06fb-aaa8-4859-8e2b-835d87838f5c/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2021-12-04T17:53:55.428082+00:00"} +POST: /v1/nodes {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-5eb618ac-5850-4e45-a37b-ffc7c2714f3f +Openstack-Request-Id: req-aabf04fb-0fea-4e11-98d2-b79b10932a55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/node-39/states/provision {'target': 'active'} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', '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, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-62a54109-b2cd-4fe1-84c8-0f86229e65bc +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-234b8b8c-2eb6-488e-8434-9ca111befc03 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -DELETE: /v1/nodes/node-39/traits -GOT:Response: 204 No Content -Openstack-Request-Id: req-4c342961-611e-45fe-a8af-77b8b6c39d01 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.087422+00:00"}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_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_node.TestPost.test_create_node_valid_instance_info +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_valid_instance_info ... ok -PUT: /v1/nodes/node-39/traits {'trait': 'CUSTOM_3'} -GOT:Response: 400 Bad Request +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} +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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-f71e69c6-0c4f-43f9-b3f8-eca986c95cf1 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-0567a77b-e201-4c6c-8a18-ebaf1b07edde X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No body should be provided when adding a trait\", \"debuginfo\": null}"} -PUT: /v1/nodes/node-39/traits {'traits': []} -GOT:Response: 204 No Content -Openstack-Request-Id: req-e2d3399f-1fd3-4257-be31-09aead79d492 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15", "switch_info": "value3"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:57.798019+00:00", "updated_at": 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-a394f502-ba2f-4588-afef-6e6183701bc6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -GET: /v1/ports/detail?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123&node=node-name {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:05.359540+00:00', 'updated_at': None}]} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-7fcb7e31-0461-44fd-b4c3-6129dc43bdb8 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-3fbdea6c-b5ab-4087-8d69-eda559935d6c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] -GOT:Response: 406 Not Acceptable +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.211326+00:00", "updated_at": null} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'c80690f3-f65e-4ff3-8dc9-101cb70798da'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, '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-0cb782bc-2083-465c-a9c2-81dab4c51aa5 +Openstack-Request-Id: req-e18d14d9-0381-445f-94f9-1544797180dd X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/local_link_connection/switch_id', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.46 +{"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 port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'b04babf7-12fb-4f32-aa9d-0aed773b7feb'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-1cdfcb45-1312-4bcd-afb7-b339521db67e +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-ea671c9c-8bc4-4c23-bafe-2f20bd7170bf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.19 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "pxe_enabled": true, "local_link_connection": {"switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:05.908586+00:00", "updated_at": "2023-01-07T00:10:05.991946+00:00"} -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-8e95440e-53f7-41fd-ba9b-929b21e95750 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "b04babf7-12fb-4f32-aa9d-0aed773b7feb"}, "internal_info": {"tenant_vif_port_id": "b04babf7-12fb-4f32-aa9d-0aed773b7feb"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.571237+00:00", "updated_at": null} +DELETE: /v1/portgroups/pg.1 +GOT:Response: 204 No Content +Openstack-Request-Id: req-f30b23f3-0f36-4b0d-922e-eee7c74a5f88 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet2", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.147594+00:00", "updated_at": "2023-01-07T00:10:06.224226+00:00"} -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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup ... ok -ironic.tests.unit.api.controllers.v1.test_port.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 +X-Openstack-Ironic-Api-Version: 1.46 -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', '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, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 400 Bad Request +GET: /v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9 {} +GOT:{'uuid': '4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:58.883713+00:00', 'updated_at': None} +GET: /v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9 {} +GOT:{'uuid': '4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:58.883713+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_datapath_id +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_datapath_id ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroup_mode_properties +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroup_mode_properties ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups_subcontrollers +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups_subcontrollers ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_similar_subpath ... ok +ironic.tests.unit.api.controllers.v1.test_utils.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_versions.TestMaxVersionString.test_max_version_pinned +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.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_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.TestPatch.test_replace_invalid_power_state +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state ... ok +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found ... ok +ironic.tests.unit.common.test_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.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_node_update_dynamic_driver_set_interfaces ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_no_defaults +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_no_defaults ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake ... ok +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed ... ok +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_out_range_auth_strategy +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_out_range_auth_strategy ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso +ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux ... ok +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ... ok +ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup +ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_missed_info ... ok +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... ok +ironic.tests.unit.common.test_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.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.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions +ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc_resource_not_found ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url +ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting ... ok +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found ... ok +ironic.tests.unit.conductor.test_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.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_no_enabled_interfaces +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_no_enabled_interfaces ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ... ok +ironic.tests.unit.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.conductor.test_manager.CreateNodeTestCase.test_create_node +ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node ... 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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change ... ok +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done ... ok +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_bad_step_return_value ... ok +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify +ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify ... ok +ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails +ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire ... ok +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi ... 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.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.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found ... ok +ironic.tests.unit.conductor.test_manager.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.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.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive +ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive ... 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.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance ... ok +ironic.tests.unit.conductor.test_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.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync ... 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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... ok + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'ssh_password': '******', 'ssh_key_contents': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:54.399598+00:00'} +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-f0514840-febb-49a4-af61-0eccd5dc748a +Openstack-Request-Id: req-c94ea8ad-4a4d-47fe-838b-328e7173daa2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute driver. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fac0a0e6-9df9-4aca-af4e-277358aa1d8c +Openstack-Request-Id: req-732d2ce3-74d0-47be-9e41-d3ad4c26f5fb X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'inspect'} +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?reset_interfaces=True [{'path': '/name', 'value': 'new name', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9984ff63-4b78-49ef-aedc-9225256f88fd +Openstack-Request-Id: req-888b769c-6445-4a43-9441-9ff0d51d88fa X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/power {'target': 'power on', 'timeout': 0} -GOT:Response: 400 Bad Request +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/8456ebb1-ac7c-4f68-a283-239c7bae64e2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-66735ece-f492-427f-a7d4-9dd9fa2b49e8 +Openstack-Request-Id: req-e3aebce1-f913-4792-9a7c-02831f6b4950 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "8456ebb1-ac7c-4f68-a283-239c7bae64e2", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "deploy failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/8456ebb1-ac7c-4f68-a283-239c7bae64e2", "rel": "self"}, {"href": "http://localhost/nodes/8456ebb1-ac7c-4f68-a283-239c7bae64e2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8456ebb1-ac7c-4f68-a283-239c7bae64e2/ports", "rel": "self"}, {"href": "http://localhost/nodes/8456ebb1-ac7c-4f68-a283-239c7bae64e2/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.393238+00:00"} +PATCH: /v1/nodes/939c4d50-4f51-4b37-8857-8e0cbf7b2b22 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-508bc2eb-ebeb-4e4f-ae83-381576edcce9 +Openstack-Request-Id: req-6f000f56-e11e-4ac5-89a7-ed14ed8da05e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-cf5af4c9-e5aa-470c-88f9-aa9eb8e9e339 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "939c4d50-4f51-4b37-8857-8e0cbf7b2b22", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/939c4d50-4f51-4b37-8857-8e0cbf7b2b22", "rel": "self"}, {"href": "http://localhost/nodes/939c4d50-4f51-4b37-8857-8e0cbf7b2b22", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/939c4d50-4f51-4b37-8857-8e0cbf7b2b22/ports", "rel": "self"}, {"href": "http://localhost/nodes/939c4d50-4f51-4b37-8857-8e0cbf7b2b22/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.529056+00:00"} +PATCH: /v1/nodes/45ba2113-c722-4af5-b7c0-6adb8f345c23 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-8bce8ce7-0be3-4e04-95e7-953792e55e58 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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=True {'boot_device': 'pxe'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-9e7666bf-c802-4437-8f0e-3992700ff815 +{"uuid": "45ba2113-c722-4af5-b7c0-6adb8f345c23", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspect failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/45ba2113-c722-4af5-b7c0-6adb8f345c23", "rel": "self"}, {"href": "http://localhost/nodes/45ba2113-c722-4af5-b7c0-6adb8f345c23", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/45ba2113-c722-4af5-b7c0-6adb8f345c23/ports", "rel": "self"}, {"href": "http://localhost/nodes/45ba2113-c722-4af5-b7c0-6adb8f345c23/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.615690+00:00"} +PATCH: /v1/nodes/bb016dcd-27a4-463b-93cc-4c5b20161ac0 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-0019361b-27c3-47d2-86e3-48f85f3f1bb5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} -GOT:Response: 404 Not Found +{"uuid": "bb016dcd-27a4-463b-93cc-4c5b20161ac0", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/bb016dcd-27a4-463b-93cc-4c5b20161ac0", "rel": "self"}, {"href": "http://localhost/nodes/bb016dcd-27a4-463b-93cc-4c5b20161ac0", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/bb016dcd-27a4-463b-93cc-4c5b20161ac0/ports", "rel": "self"}, {"href": "http://localhost/nodes/bb016dcd-27a4-463b-93cc-4c5b20161ac0/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.716551+00:00"} +PATCH: /v1/nodes/99489028-93b0-4659-8d87-10fe96d1cbb2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-a075c023-0dd0-479d-8392-87912ea4fd85 +Openstack-Request-Id: req-61317353-b507-451a-8a92-f2566e404344 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'traits': ['CUSTOM_3']} -GOT:Response: 204 No Content -Openstack-Request-Id: req-726f3f85-7ffd-4b50-b0bf-5d9c5d81ebef +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "99489028-93b0-4659-8d87-10fe96d1cbb2", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "clean failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/99489028-93b0-4659-8d87-10fe96d1cbb2", "rel": "self"}, {"href": "http://localhost/nodes/99489028-93b0-4659-8d87-10fe96d1cbb2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/99489028-93b0-4659-8d87-10fe96d1cbb2/ports", "rel": "self"}, {"href": "http://localhost/nodes/99489028-93b0-4659-8d87-10fe96d1cbb2/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.830171+00:00"} +PATCH: /v1/nodes/1d6d7840-af9e-44a5-b21d-20e04c79e4fe [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-001cc23a-5725-4aab-87a1-5d3dc61b1109 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 204 No Content -Openstack-Request-Id: req-1410fe54-acbb-461f-a070-cf0dbb478317 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1d6d7840-af9e-44a5-b21d-20e04c79e4fe", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "error", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1d6d7840-af9e-44a5-b21d-20e04c79e4fe", "rel": "self"}, {"href": "http://localhost/nodes/1d6d7840-af9e-44a5-b21d-20e04c79e4fe", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1d6d7840-af9e-44a5-b21d-20e04c79e4fe/ports", "rel": "self"}, {"href": "http://localhost/nodes/1d6d7840-af9e-44a5-b21d-20e04c79e4fe/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.906380+00:00"} +PATCH: /v1/nodes/ce863b2d-681a-469f-a30b-220d0071a893 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-3d6cdc8f-ee89-4b0b-964e-3bc461741233 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 - -GET: /v1/ports {} -GOT:{'ports': []} -GET: /v1/ports {} -GOT:{'ports': []} -PATCH: /v1/ports/22586ccd-e7f7-42d7-9985-e56ebb97d7fc [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +{"uuid": "ce863b2d-681a-469f-a30b-220d0071a893", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "verifying", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/ce863b2d-681a-469f-a30b-220d0071a893", "rel": "self"}, {"href": "http://localhost/nodes/ce863b2d-681a-469f-a30b-220d0071a893", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ce863b2d-681a-469f-a30b-220d0071a893/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce863b2d-681a-469f-a30b-220d0071a893/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.981348+00:00"} +PATCH: /v1/nodes/b9c17b74-313b-4538-bda3-55e8bb5ab4c1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3a016667-61b1-4c0b-a94b-ce5c3ee0a31d +Openstack-Request-Id: req-f2c861e7-e0f9-4466-bec5-d6e0f4ea2e7d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "22586ccd-e7f7-42d7-9985-e56ebb97d7fc", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/22586ccd-e7f7-42d7-9985-e56ebb97d7fc", "rel": "self"}, {"href": "http://localhost/ports/22586ccd-e7f7-42d7-9985-e56ebb97d7fc", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.186598+00:00", "updated_at": "2023-01-07T00:10:06.271432+00:00"} -PATCH: /v1/ports/f6fd3521-96cb-4b05-9599-ca883add3de0 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "b9c17b74-313b-4538-bda3-55e8bb5ab4c1", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "adopt failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b9c17b74-313b-4538-bda3-55e8bb5ab4c1", "rel": "self"}, {"href": "http://localhost/nodes/b9c17b74-313b-4538-bda3-55e8bb5ab4c1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b9c17b74-313b-4538-bda3-55e8bb5ab4c1/ports", "rel": "self"}, {"href": "http://localhost/nodes/b9c17b74-313b-4538-bda3-55e8bb5ab4c1/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.058795+00:00"} +PATCH: /v1/nodes/a0a94dd2-db65-4ee2-b358-27fc75d8627c [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-65322263-d34c-48d5-9b8e-c5adf7780482 +Openstack-Request-Id: req-ea3cf528-fb2d-475f-b54c-f5f0e19ecbc4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "f6fd3521-96cb-4b05-9599-ca883add3de0", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/f6fd3521-96cb-4b05-9599-ca883add3de0", "rel": "self"}, {"href": "http://localhost/ports/f6fd3521-96cb-4b05-9599-ca883add3de0", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.417294+00:00", "updated_at": "2023-01-07T00:10:06.472649+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "a0a94dd2-db65-4ee2-b358-27fc75d8627c", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "rescue failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/a0a94dd2-db65-4ee2-b358-27fc75d8627c", "rel": "self"}, {"href": "http://localhost/nodes/a0a94dd2-db65-4ee2-b358-27fc75d8627c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a0a94dd2-db65-4ee2-b358-27fc75d8627c/ports", "rel": "self"}, {"href": "http://localhost/nodes/a0a94dd2-db65-4ee2-b358-27fc75d8627c/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.161223+00:00"}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.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.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable ... ok +ironic.tests.unit.conductor.test_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.ThreadExceptionTestCase.test_set_node_last_error +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception ... ok +ironic.tests.unit.conductor.test_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.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps ... ok +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual ... ok +ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported +ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state ... ok +ironic.tests.unit.conductor.test_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.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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 ... ok +ironic.tests.unit.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 + +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-0ab34076-acfc-4eec-ac06-e3d75e7e85fc +Openstack-Request-Id: req-3b276538-9f02-418a-8bb5-2d6a24a935be X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.535370+00:00", "updated_at": null} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.532068+00:00"} +PATCH: /v1/nodes/1d54afc5-e3be-47fa-a381-15de3f8d3845 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4ce0dc64-01e3-4f56-adf5-cd3457e39caa +Openstack-Request-Id: req-5052acfe-7017-4014-9944-e6dbb554c6f0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "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"}], "created_at": "2023-01-07T00:10:06.703268+00:00", "updated_at": "2023-01-07T00:10:06.780791+00:00"}ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id ... 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_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_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_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_replace_extra_vif_port_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_replace_extra_vif_port_id ... ok - -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1d54afc5-e3be-47fa-a381-15de3f8d3845", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "deploy failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "active", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1d54afc5-e3be-47fa-a381-15de3f8d3845", "rel": "self"}, {"href": "http://localhost/nodes/1d54afc5-e3be-47fa-a381-15de3f8d3845", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1d54afc5-e3be-47fa-a381-15de3f8d3845/ports", "rel": "self"}, {"href": "http://localhost/nodes/1d54afc5-e3be-47fa-a381-15de3f8d3845/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.819556+00:00"} +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-b9478362-1722-433d-be64-fbaa4037afe1 +Openstack-Request-Id: req-c1e33388-4886-4521-8841-0ce056fa3fb9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/driver' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} +PATCH: /v1/nodes/0131fdc1-0146-4088-bf26-d7b06d3ed4da [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-bbb2d674-5a0e-4e96-8ade-c05d97326af2 +Openstack-Request-Id: req-d8ded7cb-871a-468a-b5b5-38e0a22846e7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/last_error', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.45 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver_info/this', 'value': 'foo', 'op': 'add'}, {'path': '/driver_info/that', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ec4b6595-b7dd-4338-86f6-39981b68030b +Openstack-Request-Id: req-88fb50dc-8b29-4082-82cb-5f2d5548b94a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/last_error' is an internal attribute and can not be updated\", \"debuginfo\": null}"} -PATCH: /v1/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error Message\", \"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-18f8f64a-1621-445f-8679-079a0fe1b28e +Openstack-Request-Id: req-0b62c695-7cd5-4336-ae82-ce0879df333b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "7cb5b2d0-9c65-4e54-a61d-13e61496e77c", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c", "rel": "self"}, {"href": "http://localhost/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c/ports", "rel": "self"}, {"href": "http://localhost/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c/volume", "rel": "self"}, {"href": "http://localhost/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c/states", "rel": "self"}, {"href": "http://localhost/nodes/7cb5b2d0-9c65-4e54-a61d-13e61496e77c/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.502428+00:00"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {'foo': 123}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2021-12-04T17:53:55.733966+00:00"} +PATCH: /v1/nodes/0df152f8-0f52-4238-bc56-c63fbbd36a94 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-14ea275f-1e35-4da8-98dc-4b1ed491e453 +Openstack-Request-Id: req-75e42523-5a83-43cf-a640-4819feef1c4f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"foo": 123}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:06.766324+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {'foo': 123}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:06.766324+00:00'} -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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.20 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-d1c9a4f9-5859-4e54-823d-6dd4aa871dfa +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-b197cfe2-651a-4266-976c-efd29a6b48ed X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node. Value: 'ports'. unable to convert to Node. Error: __init__() takes 1 positional argument but 2 were given\", \"debuginfo\": null}"}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.TestPut.test_abort_invalid_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_invalid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_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_put_raid -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_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_port.TestPatch.test_update_port_address_normalized -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.654674+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits ... 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_node.TestPut.test_adopt_raises_error_before_1_17 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_raises_error_before_1_17 ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 ... ok +ironic.tests.unit.api.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_node.TestPut.test_provision_with_rebuild_configdrive +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down_in_progress_deploywait ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_notification_utils.APINotifyTestCase.test_chassis_notification +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_chassis_notification ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets ... 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 -PATCH: /v1/ports/68afe6d5-b7e1-426c-9881-df47b5c48921 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +GET: /v1/nodes?associated=true&maintenance=true {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '17f13efb-4922-484d-8129-852c80163099', 'power_state': None, 'provision_state': None, 'maintenance': 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?associated=true&maintenance=TruE {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '17f13efb-4922-484d-8129-852c80163099', 'power_state': None, 'provision_state': None, 'maintenance': 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 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.419763+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:54.419763+00:00'} +GET: /v1/nodes/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3ac959a2-12d1-4426-8d2a-75f2c84b0d49 +Openstack-Request-Id: req-2c797148-2cef-4d25-ada1-89cacade383f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 -{"uuid": "68afe6d5-b7e1-426c-9881-df47b5c48921", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/68afe6d5-b7e1-426c-9881-df47b5c48921", "rel": "self"}, {"href": "http://localhost/ports/68afe6d5-b7e1-426c-9881-df47b5c48921", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:07.475653+00:00", "updated_at": "2023-01-07T00:10:07.560403+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node ports could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes?associated=false {} +GOT:{'nodes': [{'uuid': '3b123e95-460d-4dd5-a4c5-b768d578352e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3b123e95-460d-4dd5-a4c5-b768d578352e', 'rel': 'self'}, {'href': 'http://localhost/nodes/3b123e95-460d-4dd5-a4c5-b768d578352e', 'rel': 'bookmark'}]}, {'uuid': '3c56890f-5640-4e0d-afcf-f75242cda987', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3c56890f-5640-4e0d-afcf-f75242cda987', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c56890f-5640-4e0d-afcf-f75242cda987', 'rel': 'bookmark'}]}, {'uuid': '2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'rel': 'self'}, {'href': 'http://localhost/nodes/2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=FALSE {} +GOT:{'nodes': [{'uuid': '3b123e95-460d-4dd5-a4c5-b768d578352e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3b123e95-460d-4dd5-a4c5-b768d578352e', 'rel': 'self'}, {'href': 'http://localhost/nodes/3b123e95-460d-4dd5-a4c5-b768d578352e', 'rel': 'bookmark'}]}, {'uuid': '3c56890f-5640-4e0d-afcf-f75242cda987', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3c56890f-5640-4e0d-afcf-f75242cda987', 'rel': 'self'}, {'href': 'http://localhost/nodes/3c56890f-5640-4e0d-afcf-f75242cda987', 'rel': 'bookmark'}]}, {'uuid': '2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'rel': 'self'}, {'href': 'http://localhost/nodes/2b298623-a4cf-4fd8-ae24-7940b4a54a9f', 'rel': 'bookmark'}]}]} +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-24daaa61-15c5-4c08-b62f-16e67ab3fadd +Openstack-Request-Id: req-c1ff6557-49d0-4f5c-b46b-6ddceadef74e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp'. Value should have a maximum character requirement of 64\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/2e4056fd-4700-4754-a048-c607a526b2ca [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"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-4fa376ef-973e-4289-a91d-4a90abc12d4e +Openstack-Request-Id: req-26e9f2c7-f793-4a49-b40a-345064933f47 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '8da121dc-b683-480a-9597-c5b267b84c9e', 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/chassis_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'chassis_id'\", \"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-edd92d12-e477-4b4b-bd21-892343869e2d +Openstack-Request-Id: req-6bd1ab0b-ca4c-4567-967f-fdc6ad09188c X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/power_state' is an internal attribute and can not be updated\", \"debuginfo\": null}"} +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-fb2e765e-3945-49e3-ba88-e36fb2dded6c +Openstack-Request-Id: req-f69fe9d9-adff-478f-a66a-36247785e179 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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': '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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2021-12-04T17:53:56.233553+00:00"}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_node.TestPatch.test_update_ok_by_name_with_json +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok_by_name_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_storage_interface_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource ... 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_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 + +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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-04fb3ef0-9e23-47e5-a6d1-7d3374843fcc +Openstack-Request-Id: req-e65d0910-7528-40db-807d-7aba964496f8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:08.529161+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.831583+00:00", "updated_at": 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 -Openstack-Request-Id: req-960b6917-9c95-4e39-ad14-9c012656bdf7 +{"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 52:54:00:cf:2d:31. "} +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-45a373cd-5ace-4bdb-a5f8-2d9083982b7a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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': 'physnet1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 406 Not Acceptable +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} +POST: /v1/portgroups {'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-8a52c663-1114-46ca-96e1-5c07c52e5232 +Location: http://localhost/v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b +Openstack-Request-Id: req-59e09789-74c6-46d1-8e6f-14f80581a770 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/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?sort_key=mode {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "c11eb8bc-f45f-4138-bdae-c88b922f538b", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b", "rel": "self"}, {"href": "http://localhost/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b/ports", "rel": "self"}, {"href": "http://localhost/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.715453+00:00", "updated_at": null} +GET: /v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b {} +GOT:{'uuid': 'c11eb8bc-f45f-4138-bdae-c88b922f538b', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c11eb8bc-f45f-4138-bdae-c88b922f538b/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.715453+00:00', 'updated_at': None} +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-01eb3707-1757-4029-bbb8-460151da54fd +Openstack-Request-Id: req-f1d9b031-c77e-4985-96ff-2fc4b14c448a X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 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} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-86914d26-02b1-4eb0-99e5-24b4334d9768 +Openstack-Request-Id: req-8f757d67-3d20-4697-a458-24992432f411 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b 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_default_mode -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_invalid_values -ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_invalid_values ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inject_nmi -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inject_nmi ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_none -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_none ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_no_path ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_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_subpath_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name ... ok -ironic.tests.unit.api.controllers.v1.test_utils.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_versions.TestMaxVersionString.test_max_version_not_pinned -ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned ... ok -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} +GET: /v1/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3 {} +GOT:{'uuid': '9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.155686+00:00', 'updated_at': None} +GET: /v1/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3 {} +GOT:{'uuid': '9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.155686+00:00', 'updated_at': None} +GET: /volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3 {} +GOT:{'uuid': '9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9cd83c46-6eee-4d7b-93b4-2689e79ddcd3', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.155686+00:00', 'updated_at': None}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_volume_connector.TestPatch.test_replace_connector_id_already_exist +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.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_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_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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options ... ok -ironic.tests.unit.common.test_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.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.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint -ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint ... ok -ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported -ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpforbidden_converts_to_imagenotauthed ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data ... 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_hardware_type_success -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_refresh -ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_refresh ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link ... 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_glance_image_service_default_v1 -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_default_v1 ... 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.common.test_images.FsImageTestCase.test_create_vfat_image_umount_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_umount_fails ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info ... ok -ironic.tests.unit.common.test_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.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ... ok -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed ... ok -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password ... 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.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty ... ok -ironic.tests.unit.common.test_raid.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_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_rpc_version -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version ... 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.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.GenericUtilsTestCase.test_safe_rstrip -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... 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.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok ... ok -ironic.tests.unit.common.test_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.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.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.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.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on -ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on ... ok -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_exception ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old ... 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.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.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.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.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped ... 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.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift -ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift ... 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.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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid ... 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.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception ... ok -ironic.tests.unit.conductor.test_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_deploying_error_handler_not_deploy -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach ... ok -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot ... ok -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_type -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_type ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_2 ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_2 ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... skipped u"Backend 'postgresql' is unavailable: Could not connect" -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... ok -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... ok -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_default_value ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ... 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_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.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_register_conductor_override -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ... ok -ironic.tests.unit.db.test_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.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.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ... 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.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.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.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.TestAnsibleMethods.test__run_playbook_fail -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_off -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_off ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_imc_exception -ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_imc_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.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password ... ok -ironic.tests.unit.drivers.modules.drac.test_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.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.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_invalid_parameter -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_invalid_parameter ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_uefi_no_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_uefi_no_glance_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on_inst_info ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_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__get_essential_properties_fail -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_without_component -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_without_component ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_get_properties ... 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.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.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_6 ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif ... ok -ironic.tests.unit.drivers.modules.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.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_connector_id ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_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 -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-1e9e7bbe-d023-45cc-942a-59d0f511f239 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.10 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:05.850535+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:05.850535+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:05.850535+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'storage_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:{'portgroups': [{'uuid': '23bf62c8-6f98-4d5a-a033-0f6a2173458a', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/23bf62c8-6f98-4d5a-a033-0f6a2173458a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/23bf62c8-6f98-4d5a-a033-0f6a2173458a', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8a9860c0-5eb2-47e5-b776-c5d7e65adbb6 +Openstack-Request-Id: req-d480da6f-73b8-4447-8788-4d24d161ae01 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'invalid-mac-format'. unable to convert to macaddress. Error: Expected a MAC address but received invalid-mac-format.\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-5b9d3162-526c-4057-8d89-b810f1e534be +Openstack-Request-Id: req-fceb5017-2db5-493a-b220-f34b002ca5c3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": "foo", "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.441995+00:00"}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_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_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_node.TestPut.test_bad_requests_in_adoption_failed_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adoption_failed_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_invalid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.TestTraits.test_add_single_trait_fails_if_node_locked -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_if_node_locked ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_notification_utils.APINotifyTestCase.test_notification_uuid_unset -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_notification_uuid_unset ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_binding_host_id_raise -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_binding_host_id_raise ... 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.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.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_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.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_malformed_capabilities -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_malformed_capabilities ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_with_automated_clean_disabled -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_with_automated_clean_disabled ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_clean_failed_when_no_oneview_error -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_clean_failed_when_no_oneview_error ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__create_profile_from_template -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__create_profile_from_template ... ok - -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-eafad725-7f9a-4b07-a918-48a9ec5943c0 +Openstack-Request-Id: req-cef97f2b-c626-4eea-8084-bf0966835cee X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.070017+00:00", "updated_at": null} -GET: /v1/portgroups/?limit=3 {} -GOT:{'portgroups': [{'uuid': '57022f20-662a-45a9-89da-3e4a3a1f8c31', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/57022f20-662a-45a9-89da-3e4a3a1f8c31', 'rel': 'self'}, {'href': 'http://localhost/portgroups/57022f20-662a-45a9-89da-3e4a3a1f8c31', 'rel': 'bookmark'}]}, {'uuid': 'e3962550-52bf-45ac-82f0-8ee96c8cbd5f', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/e3962550-52bf-45ac-82f0-8ee96c8cbd5f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e3962550-52bf-45ac-82f0-8ee96c8cbd5f', 'rel': 'bookmark'}]}, {'uuid': '6d5c2878-4f95-4b74-a080-f08df2ec3b4d', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/6d5c2878-4f95-4b74-a080-f08df2ec3b4d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6d5c2878-4f95-4b74-a080-f08df2ec3b4d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=3&marker=6d5c2878-4f95-4b74-a080-f08df2ec3b4d'} -GET: /v1/portgroups?fields=uuid,extra {} -GOT:{'portgroups': [{'uuid': 'bc651a46-92f5-4e52-97bd-f45e40604cd7', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/bc651a46-92f5-4e52-97bd-f45e40604cd7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bc651a46-92f5-4e52-97bd-f45e40604cd7', 'rel': 'bookmark'}]}, {'uuid': '8ce69de0-9c40-404a-80e3-f82ae36a037f', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/8ce69de0-9c40-404a-80e3-f82ae36a037f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8ce69de0-9c40-404a-80e3-f82ae36a037f', 'rel': 'bookmark'}]}, {'uuid': 'cc4b2ca0-c52b-4016-867e-14a91a118f0a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/cc4b2ca0-c52b-4016-867e-14a91a118f0a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/cc4b2ca0-c52b-4016-867e-14a91a118f0a', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/?fields=address,properties {} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} +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-35b9439e-2149-4bc0-8475-e292f82f6b77 +Openstack-Request-Id: req-f609729a-27a8-4252-be46-e7f77095f304 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/a60b7ad3-db4f-4bae-b522-d7c4bc1e4b55/ports {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"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': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-08f2d433-350a-49d9-a715-237e9aedf35d +Openstack-Request-Id: req-5e76c6b9-b44d-4ada-b210-109290102d41 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.773778+00:00", "updated_at": null} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.721761+00:00", "updated_at": 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-d23b5823-4ea9-4882-81a3-ebe70a47f83b +Openstack-Request-Id: req-6e13e81e-f5c0-46d3-91d1-99069df8cce9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/pg.1.json [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +POST: /v1/heartbeat/73830953-e0a0-420d-ab90-d1da43701b76 {'callback_url': 'url'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7e9c962b-ba6d-4d0d-bdac-de79a0548b75 +Openstack-Request-Id: req-cca61792-a942-45e3-8d9c-f9acccea27b4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:07.296077+00:00", "updated_at": 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'} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/volume/connectors?detail=True {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +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-cf421446-814c-4962-8849-9364459a0b9d -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-ae92b088-f732-406c-829c-e734ed4006cb +Openstack-Request-Id: req-152579ea-1950-4091-841c-da065cf26f00 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 - -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-cdca25dc-1d2c-4ccd-adfa-95d0e897fc1e +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"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-5e1a5364-2774-44d7-ab39-a3f4baad8437 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 - -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute type. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} +POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-4295d49e-83f9-4cdc-8feb-cc65cdcb29f0 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-ee349347-879b-438d-9456-e0e220cb6ca5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.464794+00:00", "updated_at": "2023-01-07T00:10:09.471511+00:00"}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_volume_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 +{"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": null, "dict": {"cat": "meow"}}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.344502+00:00", "updated_at": null} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.344502+00:00', 'updated_at': None} +GET: /v1/volume/targets?sort_key=uuid {} +GOT:{'targets': [{'uuid': '4a7feff1-fbb9-49c8-8a6c-9ca5231388f5', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4a7feff1-fbb9-49c8-8a6c-9ca5231388f5', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4a7feff1-fbb9-49c8-8a6c-9ca5231388f5', 'rel': 'bookmark'}]}, {'uuid': '78453e49-57e5-4595-bc88-4498e20cf98e', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/78453e49-57e5-4595-bc88-4498e20cf98e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/78453e49-57e5-4595-bc88-4498e20cf98e', 'rel': 'bookmark'}]}, {'uuid': 'dcfcb1cb-ccae-4e3e-888e-1e4ddb55814b', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/dcfcb1cb-ccae-4e3e-888e-1e4ddb55814b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/dcfcb1cb-ccae-4e3e-888e-1e4ddb55814b', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.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_volume_target.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestVolumeTargetObject.test_volume_target_init -ironic.tests.unit.api.controllers.v1.test_volume_target.TestVolumeTargetObject.test_volume_target_init ... 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.redfish.test_management.RedfishManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ... ok -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ... 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.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.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid ... ok +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root ... 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.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached ... ok ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client_deprecated_opts ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client_deprecated_opts ... ok -ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict -ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type ... ok -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf ... ok -ironic.tests.unit.common.test_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.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail ... ok -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror ... ok -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg -ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg ... ok -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id ... ok +ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id +ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ... ok +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface ... 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.common.test_fsm.FSMTest.test_initialize +ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ... 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.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_refresh +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_refresh ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs +ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_mkisofs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_mkisofs_fails ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service ... ok +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_duplicate ... ok +ironic.tests.unit.common.test_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.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_unbind_port_failed ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api ... 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.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config ... ok +ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to set the BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password ... 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.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.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_bios ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_bios ... 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_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes ... ok ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ... ok -ironic.tests.unit.common.test_raid.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_zero_size_gb -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_size_gb ... 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.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property ... ok +ironic.tests.unit.common.test_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.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb ... ok ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ... 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_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.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged ... 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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ... 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.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected ... ok -ironic.tests.unit.conductor.test_manager.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.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ... 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.conductor.test_rpcapi.RPCAPITestCase.test_create_node -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ... ok -ironic.tests.unit.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.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception ... ok -ironic.tests.unit.conductor.test_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.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.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.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_power_state_error_handler_no_worker -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_no_worker ... 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.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy ... ok -ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted -ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted ... ok -ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled -ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on ... ok -ironic.tests.unit.conductor.test_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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 ... ok -ironic.tests.unit.conductor.test_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.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_create_schema ... skipped u"Backend 'postgresql' is unavailable: Could not connect" -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_chassis.DbChassisTestCase.test_get_chassis_by_uuid -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist ... ok -ironic.tests.unit.db.test_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.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_over_limit -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_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.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist ... ok -ironic.tests.unit.db.test_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_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.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_neutron.TestNeutron.test__get_ip_addresses_ports_extra -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_extra ... 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.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.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.ansible.test_deploy.TestAnsibleDeploy.test_get_properties -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug ... ok -ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleTestCase.test_cimc_handle -ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleTestCase.test_cimc_handle ... ok -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state_fail -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state_fail ... 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.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.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username ... ok -ironic.tests.unit.drivers.modules.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.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable ... ok -ironic.tests.unit.drivers.modules.drac.test_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.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware ... ok -ironic.tests.unit.drivers.modules.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__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_get_and_validate_firmware_image_info_fails_for_missing_parameter -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_off_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout ... ok -ironic.tests.unit.drivers.modules.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.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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_empty_snmp_security -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_empty_snmp_security ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.irmc.test_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_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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet ... ok -ironic.tests.unit.drivers.modules.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_extra -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_extra ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info ... 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.oneview.test_common.OneViewCommonTestCase.test__validate_spt_enclosure_group_invalid -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_spt_enclosure_group_invalid ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_ilo_access -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_ilo_access ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_validate_oneview_resources_compatibility -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_validate_oneview_resources_compatibility ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_driver_info -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_driver_info ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__del_applied_server_profile_uri_field -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__del_applied_server_profile_uri_field ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_from_next_boot_device -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_from_next_boot_device ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target ... ok -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start ... 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_active_and_unrescue_states -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_image -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_image ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_reboot -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_reboot ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_steps -ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_steps ... 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_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_custom_interface -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_custom_interface ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb ... ok -ironic.tests.unit.drivers.modules.test_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_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.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive ... 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.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha512 +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha512 ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name ... ok +ironic.tests.unit.common.test_utils.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_no_dir +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting ... ok +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn ... ok +ironic.tests.unit.conductor.test_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.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_set_power_fail ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail ... ok +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ... 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.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_with_takeover ... ok +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'inspect wait', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'updated_at': None, 'created_at': '2021-12-04T17:53:55.256534+00:00'} GET: /v1/nodes/eggs/states {} GOT:{'console_enabled': False, 'power_state': 'fake-state', 'provision_state': 'fake-state', 'provision_updated_at': '1971-03-09T00:00:00+00:00', 'target_power_state': 'fake-state', 'target_provision_state': 'fake-state', 'last_error': 'fake-error'} -GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} -GOT:Response: 404 Not Found +GET: /v1/nodes/123~123/ports {} +GOT:Response: 400 Bad Request +Content-Type: application/json +{"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 123~123. "} +GET: /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{} +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-5d0cb460-db6b-40c6-b84a-37363e7e9967 +Openstack-Request-Id: req-d336fee9-1dff-4aa5-b42a-c0b3a4fbfdbd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"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-07ca2f3d-bc18-4bce-9072-1b069890e4d8 +Openstack-Request-Id: req-6500dd3f-b7e5-46e6-84f8-917fc55c830c X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] -GOT:Response: 400 Bad Request +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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'foo', 'op': 'add'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-fbed1c19-3b1a-4c1d-8fce-b9ccbcdba8b0 +Openstack-Request-Id: req-3b23c8cd-71d6-40f2-8565-50b984936628 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'node-0'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.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/d3f51ce5-6676-4572-97be-4da5d20c3d84 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-29bfa658-a361-406d-a245-6e5be9aedf01 +Openstack-Request-Id: req-ea37a52e-0298-4153-9491-920f20881d87 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "d3f51ce5-6676-4572-97be-4da5d20c3d84", "instance_uuid": null, "power_state": null, "target_power_state": "power off", "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/d3f51ce5-6676-4572-97be-4da5d20c3d84", "rel": "self"}, {"href": "http://localhost/nodes/d3f51ce5-6676-4572-97be-4da5d20c3d84", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d3f51ce5-6676-4572-97be-4da5d20c3d84/ports", "rel": "self"}, {"href": "http://localhost/nodes/d3f51ce5-6676-4572-97be-4da5d20c3d84/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:57.668538+00:00"} +PATCH: /v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549 [{'path': '/instance_uuid', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-b0240912-cbd1-485b-94e5-afcdc0b3b76c +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.38 +{"uuid": "5c041042-debf-4293-ab14-e3ef0b4b7549", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549", "rel": "self"}, {"href": "http://localhost/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/ports", "rel": "self"}, {"href": "http://localhost/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/volume", "rel": "self"}, {"href": "http://localhost/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/states", "rel": "self"}, {"href": "http://localhost/nodes/5c041042-debf-4293-ab14-e3ef0b4b7549/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "updated_at": null, "created_at": "2021-12-04T17:53:57.912055+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_inspecting_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_no_skip_step ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_skip_step +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_skip_step ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step ... 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.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.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.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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_correct_power_state_on_upgrade_lock ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_power_transition_on_acquire ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task ... 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.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.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.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_doesnt_cache ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver ... ok +ironic.tests.unit.conductor.test_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_remove_node_traits +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits ... 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_update_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire ... 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_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.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.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot ... ok +ironic.tests.unit.conductor.test_utils.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.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid +ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid ... ok +ironic.tests.unit.conductor.test_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.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.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.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock +ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock ... ok +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ... 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.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_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_update_chassis_that_does_not_exist +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_over_limit ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found ... 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_portgroups_by_node_id +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id ... 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.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.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_neutron.TestNeutron.test__get_fixed_ip_address +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_callback_no_steps ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt ... ok +ironic.tests.unit.drivers.modules.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.cimc.test_power.PowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_fail +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_fail ... 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.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host ... 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.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.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.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.ilo.test_bios.IloBiosTestCase.test_apply_configuration_missing_parameter +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_missing_parameter ... 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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift_throws_error_if_swift_operation_fails ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError ... ok +ironic.tests.unit.drivers.modules.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_update_boot_mode_legacy +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ... ok +ironic.tests.unit.drivers.modules.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.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_management.IloManagementTestCase.test_activate_license +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_secure_boot_keys_to_default ... ok +ironic.tests.unit.drivers.modules.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.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_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.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.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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_outside_valid_disks_1 ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... skipped u"Backend 'postgresql' is unavailable: Could not connect" +ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class +ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found ... 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.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags ... 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': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-6bcb19a1-b377-4770-9f75-ace694f9893b +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-ced17701-a792-4870-9714-e8bddcc43e5f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:58.482717+00:00", "updated_at": null} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '7bb69b8f-fac5-47e4-beae-89dd45c4fd0f'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, '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-e3adffce-b3e7-40e2-85d4-a49f29067005 +Openstack-Request-Id: req-e4731a65-aac1-4c15-b74b-6c801edc68d1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/chassis_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'chassis_id'\", \"debuginfo\": null}"} -PATCH: /v1/nodes/3cb2d897-9973-4955-9901-fe307ceea2f9 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"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 port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"} +GET: /v1/portgroups {} +GOT:{'portgroups': [{'uuid': '7b070e66-ed62-4e2f-9fa7-a0cf6822ea58', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/7b070e66-ed62-4e2f-9fa7-a0cf6822ea58', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7b070e66-ed62-4e2f-9fa7-a0cf6822ea58', 'rel': 'bookmark'}]}, {'uuid': '1211755f-1f73-4082-aada-2252181780b2', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/1211755f-1f73-4082-aada-2252181780b2', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1211755f-1f73-4082-aada-2252181780b2', 'rel': 'bookmark'}]}, {'uuid': '934a2cf2-c040-4830-bf3b-6794bf306e17', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/934a2cf2-c040-4830-bf3b-6794bf306e17', 'rel': 'self'}, {'href': 'http://localhost/portgroups/934a2cf2-c040-4830-bf3b-6794bf306e17', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=3&marker=934a2cf2-c040-4830-bf3b-6794bf306e17'} +GET: /v1/portgroups/detail {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/portgroups?detail=True {} +GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.203555+00:00', 'updated_at': None}]} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9d0b30ce-7c63-4793-b623-7e57c4037fdc +Openstack-Request-Id: req-c59cb7db-83f9-4815-ab17-eaab65369dea X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.15 +X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +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-5eb64f2d-c096-4db3-9513-dcac925ec8e3 +Openstack-Request-Id: req-f619b88a-49e0-4759-9197-c8472f559eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/7d6c05b8-f89f-419b-94b9-4ab58a2a0e45 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-28c2ac4e-6ec1-42c1-b9ac-21e6759a9b92 +Openstack-Request-Id: req-7f1bd161-c319-4afe-b8ac-dcbc7c2394e1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {'test_key': 'test_value'} -GOT:Response: 202 Accepted +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 7d6c05b8-f89f-419b-94b9-4ab58a2a0e45 could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-61fa4050-2c8c-4bae-acc1-c7b0d5ad8061 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -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-4423fee2-fca2-4d71-b39a-480cb0a72dce -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.26 - -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-df459ddc-535d-4915-8130-14a9ccaec3b6 +Openstack-Request-Id: req-7f6764c3-2149-4345-9242-fa57fc383420 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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'} +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:00.118061+00:00", "updated_at": "2021-12-04T17:54:00.481570+00:00"} +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -Openstack-Request-Id: req-04c981d3-f3fe-47a7-88a6-e4925e9497b3 +Openstack-Request-Id: req-3557f781-8cf9-4332-a969-a826032c861b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 -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": "405 Method Not Allowed\n\nThe method PUT is not allowed for this resource. \n\n "} -PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} -GOT:Response: 400 Bad Request +GET: /v1/volume/ {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-c79ab4e3-f533-4611-852c-bd0aa03ebf83 +Openstack-Request-Id: req-a55b3d3f-2432-4b37-8cd5-d2aafada51f6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} -PUT: /v1/nodes/node-39/traits {} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"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-e65ba863-f9e4-4df3-86ce-0a4259a501b0 +Openstack-Request-Id: req-88801829-83f2-4a8c-be1a-e786d0ad8bd9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"}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_notification_utils.APINotifyTestCase.test_node_maintenance_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_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_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_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_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_port.TestPost.test_create_port -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_node_uuid_format ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address ... ok -ironic.tests.unit.api.controllers.v1.test_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.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises_during_cleanup -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises_during_cleanup ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted ... ok -ironic.tests.unit.drivers.modules.test_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_image_cache.TestImageCacheFetch.test__download_image -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_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__parse_driver_info_numeric_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_custom_port -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_custom_port ... 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_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_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_no_root_uuid_or_disk_id -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_no_root_uuid_or_disk_id ... ok +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_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.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi ... ok +ironic.tests.unit.api.test_acl.TestACL.test_non_admin +ironic.tests.unit.api.test_acl.TestACL.test_non_admin ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__check_versions +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__check_versions ... 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.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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_calculated_defaults ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_uuid ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success ... 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_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_vfat_image_always_umount +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_always_umount ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image ... ok +ironic.tests.unit.common.test_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.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_int_info ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_extra +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_extra ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_extra +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_extra ... 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.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.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.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipv6 ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier +ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier ... ok +ironic.tests.unit.common.test_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.GenericUtilsTestCase.test_hash_file_for_md5 +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_md5 ... 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_no_proxy +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ... ok +ironic.tests.unit.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.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.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.CheckTimeoutsTestCase.test__check_deploy_timeouts +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts ... 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.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_wrong_state ... ok +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_none +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_none ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_execute_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_last_step_noop ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_deprecated +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_deprecated ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps_old_rpc +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps_old_rpc ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console ... ok +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_abort_manual_clean ... ok +ironic.tests.unit.conductor.test_manager.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist ... ok +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ... ok +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail_unexpected ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ... 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.conductor.test_manager.VifTestCase.test_vif_attach +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach ... 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.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_get_driver_properties +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions_invalid_version ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm ... ok +ironic.tests.unit.conductor.test_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.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_no_worker ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker ... ok +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify ... ok +ironic.tests.unit.conductor.test_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.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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... skipped u"Backend 'postgresql' is unavailable: Could not connect" +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces ... 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.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_set_node_tags +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ... ok +ironic.tests.unit.db.test_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.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.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.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port +ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ... ok +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ... 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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_noglance +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_noglance ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password ... ok +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk ... ok +ironic.tests.unit.db.test_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.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.DracManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports ... ok +ironic.tests.unit.db.test_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_destroy_portgroup_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist ... 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.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address ... ok +ironic.tests.unit.drivers.modules.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.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.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid +ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_missing_parameter +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_missing_parameter ... 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.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... 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.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_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_no_cafile +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_no_cafile ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol ... ok +ironic.tests.unit.db.test_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.network.test_flat.TestFlatInterface.test_add_provisioning_network_binding_host_id_raise +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_binding_host_id_raise ... ok +ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc +ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift ... ok +ironic.tests.unit.drivers.modules.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.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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok ... ok +ironic.tests.unit.drivers.modules.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.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info ... ok +ironic.tests.unit.drivers.modules.network.test_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_management.IloManagementTestCase.test_set_boot_device_persistent_true +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_fail +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_fail ... 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.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_cafile +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_cafile ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_spt +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_spt ... 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.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_failed ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client ... ok +/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 + "instead of warning in version 3.0" % (value,)) +ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to get the BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. +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.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_community ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_node_is_in_use_by_oneview +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_node_is_in_use_by_oneview ... 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.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_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__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.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_object +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_object ... 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.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_with_timeout +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_with_timeout ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks ... ok +ironic.tests.unit.drivers.modules.redfish.test_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.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first ... ok +ironic.tests.unit.drivers.modules.test_agent.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.drac.test_power.DracPowerTestCase.test_set_power_state_timeout +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout ... ok +ironic.tests.unit.drivers.modules.drac.test_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.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_no_boot_iso +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_no_boot_iso ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url ... ok -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-74432c0e-9eec-441b-a746-79569306c756 +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-2a54c192-6e2c-4dc6-a6f8-98ba928a2da5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'unrescue'} +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-eb688ddd-b2eb-4f6e-abac-739e89f183b5 +Openstack-Request-Id: req-1d22e19c-b493-46f5-bb7b-d68e82b60be6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 +X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -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": "405 Method Not Allowed\n\nThe method PUT is not allowed for this resource. \n\n "} -PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} -GOT:Response: 400 Bad Request +PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-a5c4e022-f87e-4ef4-a7bd-e217738f7f54 +Openstack-Request-Id: req-e66795d0-2cc9-4e96-b51b-173cef5339fd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} -DELETE: /v1/ports/52:54:00:cf:2d:31 -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-f8855a31-18ff-44bb-9c40-82e5bb234504 +Openstack-Request-Id: req-915546dc-9f34-4a60-9c84-fdbdf55b9424 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute port_uuid. Value: '52:54:00:cf:2d:31'. unable to convert to uuid. Error: Expected a UUID but received 52:54:00:cf:2d:31.\", \"debuginfo\": null}"} -GET: /v1/ports/detail?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'ports': [], 'next': {}, 'created_at': {}, 'updated_at': {}} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '51273d20-fbcb-4787-ba6a-9521869392da', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-cce72a71-8e84-49a0-9078-38af6ab0e19a +Openstack-Request-Id: req-e335f2da-5175-46d3-9cb6-d2fd3ef771ff X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.24 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "51273d20-fbcb-4787-ba6a-9521869392da", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.721042+00:00", "updated_at": "2023-01-07T00:10:06.811086+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/c7fef1f3-172b-424b-a89b-dc81fcdca690 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-89e25cf3-cd98-4d49-a556-ad5da55d11ec +Openstack-Request-Id: req-2a0d2297-4a2b-483d-b1d3-e26ca46fe3e4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] +PATCH: /v1/nodes/9c57db0e-b0b1-43c3-9541-771744a1eb31 [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-39854bfa-e370-4324-88dc-02c0da0715b7 +Openstack-Request-Id: req-a22a166a-ce4e-4c8b-bc3b-d2e321d70cff X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.21 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute resource_class. Value: 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff'. Value should have a maximum character requirement of 80\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-78510cce-f5a8-48dd-8670-3ffe44bd6b3c +Openstack-Request-Id: req-bf99041a-ad05-4a65-b0f4-17e150d94280 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 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, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'class2', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-70b0af4c-e0bb-4223-a2c2-f70b21e6db24 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-1a7bf847-c4ca-4a50-97c5-8f6cc59badf3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"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', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.21 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": "class2", "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": "flat", "updated_at": null, "created_at": "2021-12-04T17:53:58.713078+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'class2', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2021-12-04T17:53:58.713078+00:00'}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.TestPost.test_create_node_invalid_driver +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ... ok +ironic.tests.unit.api.controllers.v1.test_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.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.TestPost.test_vendor_passthru_put +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state ... ok +ironic.tests.unit.api.controllers.v1.test_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_power_on_invalid_timeout_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_no_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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.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_node.TestTraits.test_delete_trait_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue ... 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.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.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_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_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.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_without_boot_iso +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_without_boot_iso ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps ... 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': False, 'physical_network': None, '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-0694a4f1-916a-4d04-b2ed-cf66d1a34f23 +Openstack-Request-Id: req-de3ebeb6-5217-497b-b5da-41d194d3ffe1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "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"}], "created_at": "2023-01-07T00:10:08.019652+00:00", "updated_at": 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 {} -GOT:{'portgroups': []} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.828719+00:00", "updated_at": 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, '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-8d88516c-1a33-4ca0-bad0-554be160a76a +Openstack-Request-Id: req-f6aa9500-c23a-43e8-a8c5-15162723948a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"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'}]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_portgroup.TestPatch.test_update_byid_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_diff_internal ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_disk_label -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_disk_label ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_no_extra -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_no_extra ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_extra_non_removable_attr ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_not_mac_or_datapath_id -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_not_mac_or_datapath_id ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_bad_id -ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_bad_id ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_remove_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_remove_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs_never ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_none -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_none ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver_fail ... 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_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_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_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.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image ... ok -ironic.tests.unit.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.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop ... ok - -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"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', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-96b930d1-fbfc-4492-a9d8-d5cb4b56043f +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-eb62a4ed-abb1-4a13-a9e7-0031864d860a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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/vif_port_id', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-a48663ab-3609-4df2-a55e-a6d2ddad0b5d -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:08.738475+00:00", "updated_at": "2023-01-07T00:10:08.821003+00:00"} -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-ce195e1c-9a99-4a85-881b-01b11bea0217 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "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"}], "created_at": "2021-12-04T17:54:02.178899+00:00", "updated_at": null} +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 204 No Content +Openstack-Request-Id: req-dab079f9-39f6-4e7a-bf92-18f2b74aaa4f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} -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 + +GET: /v1/portgroups/detail {} +GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.439146+00:00', 'updated_at': None}]} +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-192184ee-f179-4a79-a48a-48b2da2d3267 +Openstack-Request-Id: req-03eca53e-2d9c-44db-8e84-337e6b96f28a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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': '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 +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}"} +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-d3db6edf-2a52-42c7-81a7-36f660c8ce47 +Openstack-Request-Id: req-8c1ad220-e1b6-45e8-b78b-1b801a792369 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} 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-54800bda-53d7-4382-93a0-905ffa3a8863 +Openstack-Request-Id: req-63701301-8ff5-41c6-b4b9-802031f86ce2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "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": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.548120+00:00", "updated_at": null} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "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": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.808099+00:00", "updated_at": null} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', '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': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:09.548120+00:00', 'updated_at': None} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, '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-9c8eaf77-4a12-46e4-8ea1-985fe0caa622 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.811433+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id_deprecated -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id_deprecated ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_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.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_datapath_id -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_datapath_id ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name -ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_missing_mandatory_key -ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_missing_mandatory_key ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_none -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_none ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_manage_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_unknown_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_unknown_verbs ... 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.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_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.TestNodeIdent.test_get_rpc_node_expect_uuid -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_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_empty -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_volume_target.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_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.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_pxe.PXEBootTestCase.test_prepare_instance_netboot_active -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_active ... 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.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_no_kernel_no_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_no_kernel_no_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_off ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ... 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_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_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_pdu_discovery_failure ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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_teltronix_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_reset ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_clean_steps -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_clean_steps ... ok - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:04.033073+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:04.033073+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:04.352489+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'ssh_password': '******', 'ssh_key_contents': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:10:04.576878+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ssh_creds_masked -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ssh_creds_masked ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api ... ok -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_ok_logout -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_ok_logout ... ok -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_fail -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_fail ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image ... 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 u"Backend 'postgresql' is unavailable: Could not connect" -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.ucs.test_power.UcsPowerTestCase.test_validate -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate ... 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.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_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot_from_lists -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot_from_lists ... 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.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.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor ... ok -ironic.tests.unit.drivers.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.DeployStepTestCase.test_get_and_execute_deploy_steps -ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty ... ok -ironic.tests.unit.drivers.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.TestBootInterface.test_validate_rescue_default_impl -ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl ... ok -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector ... ok +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', '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': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.808099+00:00', 'updated_at': None}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_ramdisk.TestHeartbeat.test_node_not_found +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address ... ok +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_invalid_key +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_invalid_key ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_not_mac_or_datapath_id +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_not_mac_or_datapath_id ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_volume +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_volume ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name +ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_invalid_name ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup ... ok +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str ... ok +ironic.tests.unit.drivers.modules.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 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:05.890685+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2023-01-07T00:10:05.890685+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:06.178654+00:00'} -GET: /v1/nodes?associated=False&limit=2 {} -GOT:{'nodes': [{'uuid': '42d75af5-9db9-48b2-a068-e96d5b3f762e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/42d75af5-9db9-48b2-a068-e96d5b3f762e', 'rel': 'self'}, {'href': 'http://localhost/nodes/42d75af5-9db9-48b2-a068-e96d5b3f762e', 'rel': 'bookmark'}]}, {'uuid': '945ec048-6b02-44ec-975d-9d419c8d974d', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/945ec048-6b02-44ec-975d-9d419c8d974d', 'rel': 'self'}, {'href': 'http://localhost/nodes/945ec048-6b02-44ec-975d-9d419c8d974d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=2&marker=945ec048-6b02-44ec-975d-9d419c8d974d'} -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-0ec26c6c-f808-4788-9869-6ca7643c5038 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/b57b081a-d960-4987-9116-07873b5ffe03 [{'path': '/boot_interface', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-ebddc17b-6faf-4cea-90dc-ec94e5b77548 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "b57b081a-d960-4987-9116-07873b5ffe03", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.803986+00:00"} -PATCH: /v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03 [{'path': '/console_interface', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-20f78956-dac5-493b-99a4-939f4b27bc5b -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "b57b081a-d960-4987-9116-07873b5ffe03", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.803986+00:00"} -PATCH: /v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03 [{'path': '/deploy_interface', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-8b2126c6-179b-404d-aa6e-dc91c9e3a698 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "b57b081a-d960-4987-9116-07873b5ffe03", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.803986+00:00"} -PATCH: /v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03 [{'path': '/inspect_interface', 'op': 'remove'}] -GOT:Response: 200 OK +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-7f98b3bc-d738-41de-bb1e-2652c5dcfaeb +Openstack-Request-Id: req-89bd6a3c-7eb7-4ce5-8763-cc0fbfae205c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "b57b081a-d960-4987-9116-07873b5ffe03", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.803986+00:00"} -PATCH: /v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03 [{'path': '/management_interface', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 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': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-27af4a4a-c3b2-46ef-a0c5-47b39a263571 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-3f30ef39-e270-4f20-b6d7-32a192fe60e0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "b57b081a-d960-4987-9116-07873b5ffe03", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.803986+00:00"} -PATCH: /v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03 [{'path': '/power_interface', 'op': 'remove'}] -GOT:Response: 200 OK +{"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", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.536695+00:00", "updated_at": null} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.536695+00:00', 'updated_at': None} +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-b452aa61-fc6a-4491-86fc-5d579676d60c +Openstack-Request-Id: req-1faeca0b-20cb-4a55-8e1b-2b9b75afb58e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "b57b081a-d960-4987-9116-07873b5ffe03", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.803986+00:00"}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.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.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_node.TestPut.test_inject_nmi_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ... ok -ironic.tests.unit.drivers.modules.test_snmp.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.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ... 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.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.objects.test_node.TestNodeObject.test_create -ironic.tests.unit.objects.test_node.TestNodeObject.test_create ... 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.objects.test_node.TestNodeObject.test_get_by_uuid -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ... ok -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ... 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.objects.test_objects.TestObject.test_as_dict_with_nested_object -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes -ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_updates -ironic.tests.unit.objects.test_objects.TestObject.test_get_updates ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields -ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok -ironic.tests.unit.drivers.modules.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.objects.test_port.TestConvertToVersion.test_physnet_supported_missing -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name ... ok -ironic.tests.unit.drivers.modules.test_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_aten -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten ... 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_trait.TestTraitObject.test_destroy -ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ... 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.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid ... ok -ironic.tests.unit.drivers.modules.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.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ... ok - -PATCH: /v1/ports/16d8f634-b7ab-4bde-bacb-4c2845d50365 [{'path': '/extra/vif_port_id', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-e50804e9-9f83-4038-ab39-02468fe0f29b -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "16d8f634-b7ab-4bde-bacb-4c2845d50365", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/16d8f634-b7ab-4bde-bacb-4c2845d50365", "rel": "self"}, {"href": "http://localhost/ports/16d8f634-b7ab-4bde-bacb-4c2845d50365", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.892735+00:00", "updated_at": "2023-01-07T00:10:07.019237+00:00"} -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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"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/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-ab791dac-5e89-4396-9976-7d521c229423 +Location: http://localhost/v1/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a +Openstack-Request-Id: req-991cd3b1-037c-4c23-a9ee-14ffadb0e269 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:07.308830+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"uuid": "1956cf69-d494-4996-b8b4-3a511f04b06a", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a", "rel": "self"}, {"href": "http://localhost/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.795868+00:00", "updated_at": null} +GET: /v1/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a {} +GOT:{'uuid': '1956cf69-d494-4996-b8b4-3a511f04b06a', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1956cf69-d494-4996-b8b4-3a511f04b06a', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.795868+00:00', 'updated_at': None} +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-904e9325-90a7-4331-ae8b-f2d9bc903f56 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 52-54-00-cf-2d-31.\", \"debuginfo\": null}"} -DELETE: /v1/portgroups/pg.1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-92d77c8c-c414-4689-8769-664a6f4db040 +Openstack-Request-Id: req-259da277-1440-45b9-943b-1e83bccd9c6f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 - -GET: /v1/portgroups?address=aa:bb:cc:dd:ee:ff {} -GOT:{'portgroups': []} -GET: /v1/portgroups?sort_key=uuid {} -GOT:{'portgroups': [{'uuid': '79b1413d-9d60-4ed9-98b9-95dc47a07336', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/79b1413d-9d60-4ed9-98b9-95dc47a07336', 'rel': 'self'}, {'href': 'http://localhost/portgroups/79b1413d-9d60-4ed9-98b9-95dc47a07336', 'rel': 'bookmark'}]}, {'uuid': 'df114e71-186f-43b1-814b-cf738c5a70ce', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/df114e71-186f-43b1-814b-cf738c5a70ce', 'rel': 'self'}, {'href': 'http://localhost/portgroups/df114e71-186f-43b1-814b-cf738c5a70ce', 'rel': 'bookmark'}]}, {'uuid': 'e4127fe8-c36b-43e9-bb58-da947d459c41', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/e4127fe8-c36b-43e9-bb58-da947d459c41', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e4127fe8-c36b-43e9-bb58-da947d459c41', 'rel': 'bookmark'}]}]} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_id. Value: 'None'. Mandatory field missing.\", \"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-05332688-ec75-44cf-991d-291ddb32d532 +Openstack-Request-Id: req-c3077992-25aa-433b-950c-aa9ffc61fe8e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:08.241524+00:00", "updated_at": "2023-01-07T00:10:08.246876+00:00"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.108907+00:00", "updated_at": null} +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-9c531091-0b03-43fa-b304-81e4ab5b1983 +Openstack-Request-Id: req-3bcb1758-87f4-492b-b867-ed71d21fe7f4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:08.241524+00:00", "updated_at": "2023-01-07T00:10:08.246876+00:00"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-7a328eb9-18a3-4631-8fc5-df4a73b9daec -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:08.529611+00:00", "updated_at": "2023-01-07T00:10:08.621297+00:00"} -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'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"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': {'foo': 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-d8068d3a-fed1-49a4-9d2c-1184a30fc62e +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-46ea3939-53f9-44d4-9823-3506197804ba X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "foo", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:08.782836+00:00", "updated_at": null}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_ramdisk.TestLookup.test_found_by_only_uuid -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values -ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_true_values ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_path ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_name -ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_name ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_ramdisk_endpoints -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_ramdisk_endpoints ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_volume -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_volume ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success ... ok -ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned -ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_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_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.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ... 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.cmd.test_dbsync.OnlineMigrationTestCase.test__check_versions -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__check_versions ... 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.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface ... ok -ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task -ironic.tests.unit.common.test_driver_factory.StorageInterfaceFactoryTestCase.test_build_interface_for_task ... ok -ironic.tests.unit.common.test_exception.TestIronicException.test___init__ -ironic.tests.unit.common.test_exception.TestIronicException.test___init__ ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ... ok -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls ... ok -ironic.tests.unit.common.test_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_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.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None -ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_extra -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_extra ... ok -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_logout -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_logout ... 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.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ... ok -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found ... ok -ironic.tests.unit.common.test_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.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_infiniband_mac_pxe_configs ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level ... ok -ironic.tests.unit.common.test_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_swift.SwiftTestCase.test_head_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ... ok -ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free -ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free ... ok -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ... ok +{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.599261+00:00", "updated_at": null} +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.599261+00:00', 'updated_at': None} +POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}ironic.tests.unit.api.controllers.v1.test_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.test_audit.TestAuditMiddleware.test_enable_audit_request +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ... 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_middleware.TestCORSMiddleware.test_invalid_cors_get_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request ... 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.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername ... ok +ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise +ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise ... 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.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_mkfs_fails ... ok +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_extra +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_extra ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure ... ok +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema ... ok +ironic.tests.unit.common.test_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_no_logical_disk +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_logical_disk ... ok +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_datapath_id ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled ... ok +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ... ok ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ... ok -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance ... 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.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step ... ok -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_none -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_none ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual ... 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.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error ... ok -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled ... ok -ironic.tests.unit.conductor.test_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.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails -ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_get_state_fails ... ok +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked ... ok +ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked +ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup_node_locked ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_unexpected_error ... 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.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image_use_webserver ... ok +ironic.tests.unit.conductor.test_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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ... ok ironic.tests.unit.conductor.test_manager.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.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_disabled -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_disabled ... 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.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes ... ok -ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_override_with_cimc_interfaces -ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_override_with_cimc_interfaces ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ... ok -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ... 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.conductor.test_manager.UpdateNodeTestCase.test_update_node -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev ... 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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_true ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ... ok +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_not_allowed_state ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked ... ok ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification ... ok -ironic.tests.unit.conductor.test_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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ... ok -ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error -ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc ... ok -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.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.conductor.test_utils.MiscTestCase.test__notify_conductor_resume_operation -ironic.tests.unit.conductor.test_utils.MiscTestCase.test__notify_conductor_resume_operation ... ok -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps ... 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.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.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ... 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.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_configdrive ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image ... 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_volume_connector.TestListVolumeConnectors.test_collection_links_detail +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail ... ok +ironic.tests.unit.api.controllers.v1.test_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_volume_connector.TestPatch.test_replace_invalid_power_state +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_volume_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.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_unknown_driver ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions ... 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.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_build_driver_exception ... ok +ironic.tests.unit.conductor.test_utils.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_provision_error_handler_other_error +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_true ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state_notify ... ok +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits ... ok +ironic.tests.unit.conductor.test_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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 ... ok +ironic.tests.unit.conductor.test_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.db.test_api.UpgradingTestCase.test_check_versions_node_old +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old ... ok +ironic.tests.unit.db.test_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_conductor.DbConductorTestCase.test_list_hardware_type_interfaces +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags ... 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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_1 ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ... 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_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate ... 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.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_invalid_uuid ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release ... 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.db.test_portgroups.DbportgroupTestCase.test_update_portgroup -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance ... 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.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.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.db.test_nodes.DbNodeTestCase.test_update_node_provision +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address ... ok +ironic.tests.unit.db.test_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.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id_portgroup +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id_portgroup ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id ... ok +ironic.tests.unit.db.test_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.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_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.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.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.ansible.test_deploy.TestAnsibleDeploy.test_clean_up +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate_not_iwdi_netboot ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate_not_iwdi_netboot ... ok -ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_address -ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_address ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_get_drac_client ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_invalid_protocol ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port ... 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.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.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.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.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.cimc.test_management.CIMCManagementTestCase.test_get_sensors_data +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_sensors_data ... ok +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_timeout +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_timeout ... 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.drac.test_job.DracJobTestCase.test_validate_job_queue +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed ... 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.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.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.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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_backing_physical_disks ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_with_ilo_error +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_with_ilo_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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.TestFetchCleanup.test__fetch +ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... 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_setup_vmedia_for_boot_with_swift -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift ... ok -ironic.tests.unit.drivers.modules.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_secure_boot_mode_passed_true -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_true ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_power_off ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.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.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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok -ironic.tests.unit.drivers.modules.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.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.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_bios ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_notfound_exc ... ok +ironic.tests.unit.drivers.modules.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.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__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_process_fw_on_calls__download_fw_to +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to ... ok +ironic.tests.unit.drivers.modules.ilo.test_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_management.IloManagementTestCase.test_reset_bios_to_default +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default ... ok +ironic.tests.unit.drivers.modules.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_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.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.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_without_raid_level ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_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.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.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_duplicated_physical_disks ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup ... ok -ironic.tests.unit.drivers.modules.network.test_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_noop.NoopInterfaceTestCase.test_configure_tenant_networks -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks ... 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.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_deploy ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_in_use_by_oneview -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_in_use_by_oneview ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down_cleaning -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down_cleaning ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_false -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_false ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_client ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id ... 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_vif_attach +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_enclosure_group_invalid +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_enclosure_group_invalid ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_mac_type_virtual +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_mac_type_virtual ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_missing_values_empty_string +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_missing_values_empty_string ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__add_applied_server_profile_uri_field +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__add_applied_server_profile_uri_field ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_sensors_data_not_implemented ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_sensors_data_not_implemented ... ok ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail_exception ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail_exception ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_invalid_state -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_invalid_state ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off ... 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.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_exception +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_exception ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.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.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector ... ok -ironic.tests.unit.drivers.modules.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_tear_down_cleaning -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning ... 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.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.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.test_utils.UtilsTestCase.test_ensure_next_boot_device -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device ... ok -ironic.tests.unit.drivers.modules.test_agent.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.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure_no_attach_error ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot ... ok +ironic.tests.unit.drivers.modules.test_agent.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.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_image +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_image ... 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.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_no_root_uuid ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_deprecated -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_deprecated ... 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_inspector.GetClientTestCase.test__get_client_standalone +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_missed_properties ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy ... ok ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_fails ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_fails ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue ... 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_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.test_utils.UtilsTestCase.test_normalize_mac_unicode -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_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_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.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel ... ok -ironic.tests.unit.drivers.modules.test_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.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.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ... ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ... ok -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_url -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_url ... 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.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.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__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_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.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir ... ok -ironic.tests.unit.drivers.modules.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_get_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_destroy_images -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_destroy_images ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy ... 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_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_pxe.PXERamdiskDeployTestCase.test_prepare -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare ... 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_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ... ok -ironic.tests.unit.objects.test_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.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_reset ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on ... 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.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.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.objects.test_fields.TestNotificationStatusField.test_coerce_good_value -ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value ... 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.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.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_notification.TestNotificationBase.test_populate_schema -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema ... 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.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_hydration_bad_ns -ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... 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.objects.test_objects.TestObjectSerializer.test__process_object_api -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero ... 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 - -GOT:Response: 400 Bad Request +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event ... 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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-afac63cd-7a6c-451f-bc38-c63ae95cc368 +Openstack-Request-Id: req-266e55ea-c49a-4823-a83d-359cc0f10f04 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: {'port_id'}\", \"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, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.718428+00:00", "updated_at": "2021-12-04T17:54:01.825470+00:00"} +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-36c8025d-83e5-40d0-812c-4a44c204cf51 +Openstack-Request-Id: req-90288cf4-b51d-47bf-8976-ef1df9077783 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 {"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': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-fda0d5a8-f610-4a7e-a105-aa176f3167f8 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-5e42bdf2-188b-4acc-828c-a057900ab747 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"{'switch_foo'} are invalid keys\", \"debuginfo\": null}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'd1c03ba5-a6fb-46b0-a602-ee7e83eb1c5b'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.23 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} +GET: /v1/volume/connectors/?limit=3 {} +GOT:{'connectors': [{'uuid': 'efc23e5c-a4fd-4f24-9359-dc9f7e87c2a5', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/efc23e5c-a4fd-4f24-9359-dc9f7e87c2a5', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/efc23e5c-a4fd-4f24-9359-dc9f7e87c2a5', 'rel': 'bookmark'}]}, {'uuid': '99ebf512-1a74-491f-aff0-fe25489aa1a0', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/99ebf512-1a74-491f-aff0-fe25489aa1a0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/99ebf512-1a74-491f-aff0-fe25489aa1a0', 'rel': 'bookmark'}]}, {'uuid': '59041eb7-7f0c-406a-8222-c52736cc3dfe', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/59041eb7-7f0c-406a-8222-c52736cc3dfe', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/59041eb7-7f0c-406a-8222-c52736cc3dfe', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=59041eb7-7f0c-406a-8222-c52736cc3dfe'} +GET: /v1/volume/connectors?sort_key=uuid {} +GOT:{'connectors': [{'uuid': '064c0ebd-6ac8-4109-b165-ce6c17240351', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/064c0ebd-6ac8-4109-b165-ce6c17240351', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/064c0ebd-6ac8-4109-b165-ce6c17240351', 'rel': 'bookmark'}]}, {'uuid': 'b985d3c0-5f54-4035-8ec8-e32e649eb68c', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/b985d3c0-5f54-4035-8ec8-e32e649eb68c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/b985d3c0-5f54-4035-8ec8-e32e649eb68c', 'rel': 'bookmark'}]}, {'uuid': 'e5ef2a65-b722-49ad-99af-2c4e272f18f8', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/e5ef2a65-b722-49ad-99af-2c4e272f18f8', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e5ef2a65-b722-49ad-99af-2c4e272f18f8', 'rel': 'bookmark'}]}]} +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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-e9c62c72-e457-4f74-98ea-d726d4916d7a +Openstack-Request-Id: req-7d017cf2-6eff-4010-b027-8d83f53b5f9c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "d1c03ba5-a6fb-46b0-a602-ee7e83eb1c5b"}, "internal_info": {"tenant_vif_port_id": "d1c03ba5-a6fb-46b0-a602-ee7e83eb1c5b"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:06.830216+00:00", "updated_at": null} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'f8e3b8b3-66d7-449a-870f-7e7f187f93c0'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"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': '/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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-b6b66f1a-d121-4140-b2b5-3ac09d4e48f4 +Openstack-Request-Id: req-6ec0993e-1330-4191-ab3c-c43cc8ad8cdb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "f8e3b8b3-66d7-449a-870f-7e7f187f93c0"}, "internal_info": {"tenant_vif_port_id": "f8e3b8b3-66d7-449a-870f-7e7f187f93c0"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:07.069563+00:00", "updated_at": null} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'c196e432-e03a-4ade-8496-2cbe7218b525'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.920765+00:00", "updated_at": "2021-12-04T17:54:02.926276+00:00"} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-107b87e1-9c8d-4d07-a727-043ee8a156fe +Openstack-Request-Id: req-3b9bcb3f-a8ad-479b-bebc-335ec20575fe X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "c196e432-e03a-4ade-8496-2cbe7218b525"}, "internal_info": {"tenant_vif_port_id": "c196e432-e03a-4ade-8496-2cbe7218b525"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:07.341113+00:00", "updated_at": null} -GET: /v1/portgroups/detail?sort_key=mode {} -GOT:{'portgroups': [{'uuid': 'eab9cd35-6afe-4b76-9e2e-5a42617b5a71', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/eab9cd35-6afe-4b76-9e2e-5a42617b5a71', 'rel': 'self'}, {'href': 'http://localhost/portgroups/eab9cd35-6afe-4b76-9e2e-5a42617b5a71', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_1', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/eab9cd35-6afe-4b76-9e2e-5a42617b5a71/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/eab9cd35-6afe-4b76-9e2e-5a42617b5a71/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:07.503311+00:00', 'updated_at': None}, {'uuid': 'a51cc4ff-1ded-43f5-a372-8822439f2c37', 'address': '52:54:00:cf:2d:32', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/a51cc4ff-1ded-43f5-a372-8822439f2c37', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a51cc4ff-1ded-43f5-a372-8822439f2c37', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_2', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/a51cc4ff-1ded-43f5-a372-8822439f2c37/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a51cc4ff-1ded-43f5-a372-8822439f2c37/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:07.501712+00:00', 'updated_at': None}, {'uuid': '65f67b5e-5afc-4823-8cf5-963d5bfcdafc', 'address': '52:54:00:cf:2d:33', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/65f67b5e-5afc-4823-8cf5-963d5bfcdafc', 'rel': 'self'}, {'href': 'http://localhost/portgroups/65f67b5e-5afc-4823-8cf5-963d5bfcdafc', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_3', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/65f67b5e-5afc-4823-8cf5-963d5bfcdafc/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/65f67b5e-5afc-4823-8cf5-963d5bfcdafc/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:07.499765+00:00', 'updated_at': None}]}/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 - "instead of warning in version 3.0" % (value,)) -ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to get the BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. -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.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_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.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_portgroup.TestPatch.test_update_in_inspecting_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id ... 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.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.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_target.TestVolumeTargetObject.test_list_none -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ... 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.objects.test_volume_target.TestVolumeTargetObject.test_save -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ... 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.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_soft_poweroff_retry -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_soft_poweroff_retry ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_clean_steps ... 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.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 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.163455+00:00", "updated_at": null}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.network.test_noop.NoopInterfaceTestCase.test_validate +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... 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.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_no_firmware_url +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_no_firmware_url ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good ... ok +ironic.tests.unit.drivers.modules.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.network.test_noop.NoopInterfaceTestCase.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image ... 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.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_prepare_manager_url +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_prepare_manager_url ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_cold_good ... ok +ironic.tests.unit.api.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.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.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sht +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sht ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso ... ok +ironic.tests.unit.api.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.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.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.oneview.test_deploy.OneViewAgentDeployTestCase.test_get_properties +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code ... ok +ironic.tests.unit.api.controllers.v1.test_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.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_gb ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password ... ok +ironic.tests.unit.drivers.modules.test_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.api.test_acl.TestACL.test_authenticated +ironic.tests.unit.api.test_acl.TestACL.test_authenticated ... 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_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_uefi +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_uefi ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_preserve_ephemeral +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_preserve_ephemeral ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_wo_boot_option_and_wo_boot_mode +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_wo_boot_option_and_wo_boot_mode ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises_during_cleanup +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises_during_cleanup ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_whole_disk_image ... ok +ironic.tests.unit.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.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.TestACL.test_non_admin_with_admin_header +ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header ... 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.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.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found ... ok +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context ... 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.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface +ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface ... ok +ironic.tests.unit.drivers.modules.test_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.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image ... ok +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_deleted ... ok +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ... 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_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.IPMIToolDriverTestCase.test_get_force_boot_device_persistent +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_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.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_ok ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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_first_call_to_address +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_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_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 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} -GOT:Response: 400 Bad Request +PATCH: /v1/nodes/971de187-6aaa-4833-a5ce-334d395b04a8 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2c8d374f-e012-4531-bdd2-e6a2d755a327 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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': 'abort'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-9544d0a0-a824-49e9-8a8f-9283185d9497 +Openstack-Request-Id: req-7e2c3060-cd79-48f5-86e8-0109a3bc9a11 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.41 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "971de187-6aaa-4833-a5ce-334d395b04a8", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "unrescue failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/971de187-6aaa-4833-a5ce-334d395b04a8", "rel": "self"}, {"href": "http://localhost/nodes/971de187-6aaa-4833-a5ce-334d395b04a8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/971de187-6aaa-4833-a5ce-334d395b04a8/ports", "rel": "self"}, {"href": "http://localhost/nodes/971de187-6aaa-4833-a5ce-334d395b04a8/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.252724+00:00"} +PATCH: /v1/nodes/69230e85-ad74-4d66-953c-e7976e20d785 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-dabd7571-cccd-4d1e-bf26-8d08abdf7357 +Openstack-Request-Id: req-085c4422-8386-4a2d-ab9a-ae558afe14d1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.26 +X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active', 'rescue_password': 'password'} +POST: /v1/nodes {'name': 'maintenance', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-24c55e9b-c0a6-436e-a4fa-38be266b5fb9 +Openstack-Request-Id: req-c2343db0-8b07-4e91-81be-539fb411cee7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'active', 'configdrive': 'foo'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-ab04f0bf-c51b-4201-92c8-ae851b0d32c8 +X-Openstack-Ironic-Api-Version: 1.10 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': 'management', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-1e0fd717-81de-4c28-855d-32d7a16b187c X-Openstack-Ironic-Api-Maximum-Version: 1.46 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-b5227eff-012a-4d1e-a3c0-08076aa05e0d +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', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-5014e369-63df-4448-935f-62f8c5c48b13 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.12 - -PUT: /v1/nodes/node-39/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-3e972761-3e71-422f-918a-36ef8d4be99b +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', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-74996127-5b81-4825-89c9-08ae98bde956 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 - -GET: /v1/ports/detail {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': False, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, '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'}], 'created_at': '2023-01-07T00:10:08.778270+00:00', 'updated_at': None}]} -GET: /v1/ports/detail?node=test-node {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:08.990991+00:00', 'updated_at': None}]} -GET: /v1/ports/detail?sort_key=pxe_enabled {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.10 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"vendor_passthru\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': 'detail', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d30ee707-45bd-4306-adb6-7072ef5f68bd +Openstack-Request-Id: req-8475bc1b-7240-485f-9eee-bda67d05f148 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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?sort_key=pxe_enabled {} -GOT:{'ports': [{'uuid': '7675514a-f8f4-4ef6-b7dc-f9adb883b019', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/7675514a-f8f4-4ef6-b7dc-f9adb883b019', 'rel': 'self'}, {'href': 'http://localhost/ports/7675514a-f8f4-4ef6-b7dc-f9adb883b019', 'rel': 'bookmark'}]}, {'uuid': '2b9ea85f-2d1d-4338-a409-59ffff7a1ee3', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/2b9ea85f-2d1d-4338-a409-59ffff7a1ee3', 'rel': 'self'}, {'href': 'http://localhost/ports/2b9ea85f-2d1d-4338-a409-59ffff7a1ee3', 'rel': 'bookmark'}]}]} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.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', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c00ad01d-4485-4487-9d48-b4687d7bb300 +Openstack-Request-Id: req-81af7845-b81c-44a2-844c-f2d0a6d37b5e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] +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.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_node.TestPost.test_create_node_specify_conductor_group +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_httpnotfound_converts_to_imagenotfound ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... ok +ironic.tests.unit.api.controllers.v1.test_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_node.TestPut.test_power_state_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter ... ok +ironic.tests.unit.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_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd_without_user ... ok + +PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9c3ac5e4-e44b-490f-9c55-88591ff3d5fe +Openstack-Request-Id: req-60c8bafd-cf6c-49f8-887f-f4cfad86cb5d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.798043+00:00", "updated_at": "2023-01-07T00:10:09.883643+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} +PATCH: /v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d7fee388-5d3b-447e-886e-c2151d46286a +Openstack-Request-Id: req-a5a7987b-a77f-4d4f-aae1-3bb93d2dde7d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.001255+00:00", "updated_at": "2023-01-07T00:10:10.086365+00:00"} -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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "self"}, {"href": "http://localhost/nodes/7d7e3e13-ec34-44a7-b1a7-6f1cf05ab82a/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:52.070528+00:00"} +PATCH: /v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-ae893cdd-8dfe-4947-9c80-7a6743653864 +Openstack-Request-Id: req-1d6d3c5b-c3cd-456e-a2ff-94c008e1a697 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.294240+00:00", "updated_at": null}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_port.TestPost.test_create_port_with_extra_vif_port_id -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id ... 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_portgroup.TestListPortgroups.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byaddress_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_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.TestPatchExtraVifPortId.test_add_extra_vif_port_id_deprecated -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_deprecated ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_ok ... ok -ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to set the BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. -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_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_invalid_job_queue -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_invalid_job_queue ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job ... 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.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks ... ok -ironic.tests.unit.drivers.modules.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.IloBootPrivateMethodsTestCase.test__get_boot_iso_object_name -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_object_name ... ok +{"uuid": "4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da", "rel": "self"}, {"href": "http://localhost/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/ports", "rel": "self"}, {"href": "http://localhost/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/volume", "rel": "self"}, {"href": "http://localhost/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/states", "rel": "self"}, {"href": "http://localhost/nodes/4a579ca7-f3a4-4b1b-87c3-0b56fa84b9da/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:53.780496+00:00"} +PATCH: /v1/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}]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.TestPatch.test_update_state +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.TestPost.test_create_node_invalid_chassis +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured ... ok +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_not_found ... ok +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ... 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.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_maintenance_when_raise_exception +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_maintenance_when_raise_exception ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic_no_server_profile +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic_no_server_profile ... 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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_client ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'updated_at': None, 'created_at': '2023-01-07T00:10:06.441995+00:00'} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} -GOT:Response: 202 Accepted +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', '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'}}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:56.087422+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-5668a5b5-83f8-4bb2-8b51-192c790b93db +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-62a81e6a-1f4f-41d6-8827-e5c9fc6cb849 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -null -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru {'foo': 'bar'} -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "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"}}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:56.918422+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, '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'}}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:56.918422+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-dc6a94fa-ab03-4682-ad47-e3b48745021a +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-b1f6b218-a19b-400d-811d-4c349a6ebb2e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:57.651309+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:57.651309+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}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.TestPut.test_inject_nmi +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi ... 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_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_invalid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_no_server_profile +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_no_server_profile ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path_ipxe ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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.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_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_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.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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address ... ok +ironic.tests.unit.common.test_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_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... ok +ironic.tests.unit.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.common.test_rpc_service.TestRPCService.test_start +ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_invalid_device +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_invalid_device ... 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.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ... 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.TempFilesTestCase.test__check_dir_writable_ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... ok +ironic.tests.unit.conductor.test_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.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail ... ok +ironic.tests.unit.conductor.test_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.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated ... 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.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_all +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_all ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort +ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error ... 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.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 + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2021-12-04T17:53:56.654674+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-95a81625-b06c-491b-bf98-73d9a92f73b2 +Openstack-Request-Id: req-9e648ccf-260d-418d-ae50-c6e417cc1664 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopt failed\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot specify node traits on node creation. Traits must be set via the node traits API.\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} +GOT:Response: 202 Accepted Content-Type: application/json -Openstack-Request-Id: req-c68e51e1-5a3e-4245-b1f5-4f5eba60d397 +Openstack-Request-Id: req-114e5cfb-9ebb-4a4e-9944-dc0fb62ec2b9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 +null +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-dac584f7-c863-48bc-8de8-04c473fd304e +Openstack-Request-Id: req-7111b1bc-c3ba-49ad-9cd6-649d821b71c1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/management/inject_nmi {} -GOT:Response: 204 No Content -Openstack-Request-Id: req-51ea106a-c674-4af8-9afb-4745690797dd +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': 'manage'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-78ab9bbf-c489-4102-9282-12f72697cd33 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.29 +X-Openstack-Ironic-Api-Version: 1.17 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 0} +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-2e6e7a48-e2d0-4806-b942-33faa74f3e9c +Openstack-Request-Id: req-6a2e0255-5e8d-45ce-a7f5-9723839e59b9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/node-39/maintenance {'reason': 'fake_reason'} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 202 Accepted -Openstack-Request-Id: req-3b999486-29af-4d12-8c74-d46e5c225423 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-e55f7606-0b19-425c-8765-3f282d54212f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 +X-Openstack-Ironic-Api-Version: 1.38 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 202 Accepted -Openstack-Request-Id: req-30fe0a1a-d9ea-4750-9dfe-3a3d4119be10 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-2695a2cc-2ea8-4a17-a175-9118df614d41 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.38 -PUT: /v1/nodes/node-39/maintenance {} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} GOT:Response: 202 Accepted -Openstack-Request-Id: req-247fa6a0-40a5-4ecb-8628-af2491785e78 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-0a737cd3-5653-40a4-8af4-01965fd843f2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 +X-Openstack-Ironic-Api-Version: 1.38 -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} -GOT:Response: 204 No Content -Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 -Openstack-Request-Id: req-af6f0e54-2b82-4255-91a8-08698da52b5f +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-3d0d99fc-3144-4cee-b398-8471d5486b80 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 +X-Openstack-Ironic-Api-Version: 1.35 -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-5edce97a-42db-4746-b1f4-c9ce576820de -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-a7a28f92-569b-4f8d-8833-2f9d55f5e0c9 +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-4b6d67ae-2194-4284-a3ff-3e38856d28b0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/ports {} -GOT:{'ports': [{'uuid': '97e143d5-8283-4342-82ae-0f4da596814e', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/97e143d5-8283-4342-82ae-0f4da596814e', 'rel': 'self'}, {'href': 'http://localhost/ports/97e143d5-8283-4342-82ae-0f4da596814e', 'rel': 'bookmark'}]}, {'uuid': '4f5e3ffd-e70e-49c4-8fff-71860fd6529d', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/4f5e3ffd-e70e-49c4-8fff-71860fd6529d', 'rel': 'self'}, {'href': 'http://localhost/ports/4f5e3ffd-e70e-49c4-8fff-71860fd6529d', 'rel': 'bookmark'}]}, {'uuid': '65f5eeb0-7800-4849-a59b-596d9c746a99', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/65f5eeb0-7800-4849-a59b-596d9c746a99', 'rel': 'self'}, {'href': 'http://localhost/ports/65f5eeb0-7800-4849-a59b-596d9c746a99', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=3&marker=65f5eeb0-7800-4849-a59b-596d9c746a99'}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_port.TestPatch.test_remove_extra_vif_port_id_not_internal -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_internal ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_unsupported_url ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ... 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.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_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false_and_existing_cap -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false_and_existing_cap ... ok +X-Openstack-Ironic-Api-Version: 1.1 -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:08.467426+00:00', 'updated_at': None} -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=invalid-mac-format {} +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-98762668-c372-4f0d-b721-7404deea82d4 +Openstack-Request-Id: req-bdcbc8eb-2f50-4fc7-8dd1-6b0307794591 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'invalid-mac-format'. unable to convert to macaddress. Error: Expected a MAC address but received invalid-mac-format.\", \"debuginfo\": null}"} -GET: /v1/portgroups/123 123/ports {} -GOT:Response: 400 Bad Request -Content-Type: application/json -{"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 123 123. "} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 1234, 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"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/maintenance {'reason': 'fake'} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-9b9cf08b-32c5-46d2-98c8-d6bfe4ede7b0 +Openstack-Request-Id: req-2de03cc7-a8f7-438e-8fd8-b4d7d537f98f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-b52e9417-fa58-45e0-82ca-ffddd91a855a -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} -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, 'node_uuid': 'invalid-format', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request +{"error_message": "405 Method Not Allowed\n\nThe method PUT is not allowed for this resource. \n\n "} +DELETE: /v1/nodes/node-39/traits/CUSTOM_1 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-974cd19f-5e7c-415d-80e6-fbee7bf7c965 +Openstack-Request-Id: req-76c03dc1-ea29-47cd-9b20-05d3ddadc88e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received invalid-format.\", \"debuginfo\": null}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +GET: /v1/ports/detail?node=test-node {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-92e29d2c-38a9-41ce-876d-a3d9debe9383 +Openstack-Request-Id: req-108b1453-8240-49b9-a1b1-887d2c017f5c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.894670+00:00", "updated_at": null} -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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_no_internal +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_no_internal ... 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_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_port.TestPatch.test_replace_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ... ok +ironic.tests.unit.api.controllers.v1.test_port.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_port.TestPost.test_create_port_generate_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_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_portgroup.TestDelete.test_delete_portgroup_node_locked +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_not_allowed ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_disappears ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked ... ok + +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-977b0efc-dc9b-4814-9a99-cb603843eeb5 +Openstack-Request-Id: req-11f11b87-1bec-4b54-9daf-3303cf08c858 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'None'. Mandatory field missing.\", \"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, 'node_uuid': '5403c4ad-1cb8-4a69-828c-0eb51dcc0991', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request +{"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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-8775dcc3-654f-434e-8b0a-be0668f95b83 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-9e87354d-f410-47bf-84ce-688ad9bddf34 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 5403c4ad-1cb8-4a69-828c-0eb51dcc0991 could not be found.\", \"debuginfo\": null}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'c914e880-8f2b-4a77-a628-7d13e7400413'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:58.501930+00:00"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-108bdb26-aef5-4287-a54a-4e6fe70b1011 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-3d0c9bbc-ff6b-488c-9535-b99a61e2e52f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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 port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_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.TestPatch.test_update_invalid_name -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_properties ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": "foo", "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:58.760764+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'foo', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': '', 'updated_at': None, 'created_at': '2021-12-04T17:53:58.760764+00:00'}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_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_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_node.TestPut.test_clean +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_accepted_after_1_41 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_trait_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_port.TestListPorts.test_empty +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_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_port.TestPatch.test_remove_physical_network_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_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_port.TestPatch.test_update_byid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed ... 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.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_all ... ok +ironic.tests.unit.conductor.test_manager.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.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.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ... 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.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_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception ... ok +ironic.tests.unit.conductor.test_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.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.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.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.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_invalid_device +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_invalid_device ... 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 -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-1c76bbcf-881b-4099-8cb6-9ae52365fd18 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.464794+00:00", "updated_at": "2023-01-07T00:10:09.471511+00:00"} -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'}] +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-7dab2a2d-a809-449f-b93a-2cc52d55b54b +Openstack-Request-Id: req-99ac5567-a52c-491b-8739-8247cc2c19c3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.781001+00:00", "updated_at": "2023-01-07T00:10:09.785302+00:00"} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2021-12-04T17:53:56.937087+00:00"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'neutron', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-799f503a-3fe0-4725-9bf8-79d62dd30c2f -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} -GET: / {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-a31e7167-b7d4-4568-87bd-a9e0165a9868 -{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-a304d13e-a427-48e5-b1e9-f529d10f00c8 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} -Running batches of 50 until migrations have been completed. -Data migrations have completed. -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.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.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached ... ok - -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-286d4346-a648-4c82-9e58-fd3cced1986d +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-1ca95eec-85c8-42a1-b92c-e321bab59fb8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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=428835d1-3a8c-4381-bfe3-cf9a9f7bf905 {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.20 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "network_interface": "neutron", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'neutron', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-4cad3a36-0abd-4943-a72a-b25211b0d094 +Openstack-Request-Id: req-a83e9792-8312-4318-9a21-1fb55bd53f28 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -GET: /v1/volume/targets {} -GOT:{'targets': [{'uuid': 'd7329d3d-fb22-4483-b981-0d68cfbbf2f7', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/d7329d3d-fb22-4483-b981-0d68cfbbf2f7', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d7329d3d-fb22-4483-b981-0d68cfbbf2f7', 'rel': 'bookmark'}]}, {'uuid': '7e6e5cd8-8ccc-44c5-94fc-496d426a55fa', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/7e6e5cd8-8ccc-44c5-94fc-496d426a55fa', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/7e6e5cd8-8ccc-44c5-94fc-496d426a55fa', 'rel': 'bookmark'}]}, {'uuid': '1318b842-f9df-456a-a1a4-f7b7bc7a3a41', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1318b842-f9df-456a-a1a4-f7b7bc7a3a41', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1318b842-f9df-456a-a1a4-f7b7bc7a3a41', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=1318b842-f9df-456a-a1a4-f7b7bc7a3a41'} -GET: /v1/volume/targets {} -GOT:{'targets': []} -GET: /v1/volume/targets {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: /v1/volume/targets?sort_key=uuid {} -GOT:{'targets': [{'uuid': '327a54de-74d5-4001-b413-589018ae6df0', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/327a54de-74d5-4001-b413-589018ae6df0', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/327a54de-74d5-4001-b413-589018ae6df0', 'rel': 'bookmark'}]}, {'uuid': '8708bb36-4e0b-4cce-af98-3132c39335c1', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/8708bb36-4e0b-4cce-af98-3132c39335c1', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8708bb36-4e0b-4cce-af98-3132c39335c1', 'rel': 'bookmark'}]}, {'uuid': 'd23f215c-f791-48e9-b361-5620851837d4', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/d23f215c-f791-48e9-b361-5620851837d4', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d23f215c-f791-48e9-b361-5620851837d4', 'rel': 'bookmark'}]}]} -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 +X-Openstack-Ironic-Api-Version: 1.32 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +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-c8fd63c2-0d96-4525-9172-68910dcc8704 +Openstack-Request-Id: req-97b8a496-6d9f-44b9-a688-96f34e9bc4cb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:12.401749+00:00", "updated_at": null} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"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-7d902672-7228-42ee-97e3-29deba75f50f +Openstack-Request-Id: req-2fceaec0-934c-4410-ba06-9f1e0b7b166e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.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/states/provision {'target': 'abort'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-4a3ba4a7-a7b2-434a-adaf-1362e282423c +Openstack-Request-Id: req-718c88a9-0725-482c-b8d5-6b41f0858501 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"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'}] +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'}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_enabled ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_port.TestListPorts.test_detail_using_query_old_version +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_old_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_portgroup_is_none ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_port.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_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_port.TestPost.test_create_port_portgroup_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail ... ok + +PATCH: /v1/nodes/node-57.1 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dec6e2f5-8435-4b7a-b990-168e09cd84ad -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:12.821357+00:00", "updated_at": "2023-01-07T00:10:12.826052+00:00"} -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": "404 Not Found\n\nThe resource could not be found.\n\n "} -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-16723a8a-91cd-4efc-974f-e6708bb15b70 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-5b387dec-7ffe-4838-95b3-65630c567741 +Openstack-Request-Id: req-95a4184f-1b0d-4c2e-91a3-f449f78b5edf X-Openstack-Ironic-Api-Maximum-Version: 1.46 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: baremetal:node:get\", \"debuginfo\": null}"}ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header -ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header ... ok -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ... 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.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_glance_service.TestGlanceSerializer.test_serialize -ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server_fail -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server_fail ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_efibootimg -ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_efibootimg ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__umount_without_raise -ironic.tests.unit.common.test_images.FsImageTestCase.test__umount_without_raise ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance ... ok -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail ... ok -ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id -ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id ... ok -ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty -ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty ... 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.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_extra -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_extra ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs ... 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.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script ... ok -ironic.tests.unit.common.test_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_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_tftp_path_prefix_without_trailing_slash -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_without_trailing_slash ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ... ok -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... ok -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... ok -ironic.tests.unit.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.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_capabilities ... ok -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default ... 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.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.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task ... ok -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean ... ok -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_all -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_all ... ok -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_async -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_async ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_fail_in_tear_down_cleaning ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2_old -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2_old ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_no_steps -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_no_steps ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_bad_state ... ok -ironic.tests.unit.conductor.test_manager.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.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_unexpected_error ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found ... ok -ironic.tests.unit.conductor.test_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.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_maintenance -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old ... 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.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.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.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector ... 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.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked ... ok -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_remove_node_traits ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid ... ok -ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg -ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_unstable ... 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_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_no_worker ... ok -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_timeout ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_2 ... ok -ironic.tests.unit.conductor.test_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.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ... ok -ironic.tests.unit.drivers.modules.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 - +X-Openstack-Ironic-Api-Version: 1.5 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:54.704667+00:00"} +PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/boot_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0996f258-e659-486e-83c6-c3edc804d89a +Openstack-Request-Id: req-64cf07ce-4b4a-455f-b5dc-e6badf674b3e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:08.738363+00:00", "updated_at": null} -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": "404 Not Found\n\nThe resource could not be found.\n\n "} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +{"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} +PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/console_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-29c76b35-8457-4a50-b097-2019a4c00e88 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "original"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.060230+00:00", "updated_at": "2023-01-07T00:10:09.142402+00:00"} -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/2960cc67-c365-45b6-9ba5-39436c781e78 -Openstack-Request-Id: req-a7def83f-9b07-402d-84a7-59e22b023d61 +Openstack-Request-Id: req-619bec9c-8f51-4a3f-b4e8-9230121218ff X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "2960cc67-c365-45b6-9ba5-39436c781e78", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/2960cc67-c365-45b6-9ba5-39436c781e78", "rel": "self"}, {"href": "http://localhost/portgroups/2960cc67-c365-45b6-9ba5-39436c781e78", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/2960cc67-c365-45b6-9ba5-39436c781e78/ports", "rel": "self"}, {"href": "http://localhost/portgroups/2960cc67-c365-45b6-9ba5-39436c781e78/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.329188+00:00", "updated_at": null} -GET: /v1/portgroups/2960cc67-c365-45b6-9ba5-39436c781e78 {} -GOT:{'uuid': '2960cc67-c365-45b6-9ba5-39436c781e78', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/2960cc67-c365-45b6-9ba5-39436c781e78', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2960cc67-c365-45b6-9ba5-39436c781e78', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/2960cc67-c365-45b6-9ba5-39436c781e78/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2960cc67-c365-45b6-9ba5-39436c781e78/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:09.329188+00:00', 'updated_at': None} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, '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-a9183b96-df69-4f93-9384-0335548b341b -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.558677+00:00", "updated_at": null} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} +PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/deploy_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-4e35cbec-0d8b-4881-8dea-18e9e372d501 +Openstack-Request-Id: req-833176c4-f902-4777-af3e-c04329da0854 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.810354+00:00", "updated_at": null} -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 400 Bad Request +{"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} +PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/inspect_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1f251a59-2376-4a3b-9041-086a3d668d0e +Openstack-Request-Id: req-806681cc-6a56-4495-9408-334ba5a33f92 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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}"} -GET: /v1/volume/connectors/?limit=3 {} -GOT:{'connectors': [{'uuid': 'd3cbffb7-5ad3-423a-8e35-0e234967ccbc', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/d3cbffb7-5ad3-423a-8e35-0e234967ccbc', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/d3cbffb7-5ad3-423a-8e35-0e234967ccbc', 'rel': 'bookmark'}]}, {'uuid': '3855a099-1717-427e-b1e5-19821f065776', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/3855a099-1717-427e-b1e5-19821f065776', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3855a099-1717-427e-b1e5-19821f065776', 'rel': 'bookmark'}]}, {'uuid': '7d674af1-755c-4b15-aa8e-f1c46018b46f', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/7d674af1-755c-4b15-aa8e-f1c46018b46f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7d674af1-755c-4b15-aa8e-f1c46018b46f', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=7d674af1-755c-4b15-aa8e-f1c46018b46f'}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_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.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.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_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.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.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_vif_detach -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ... 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_validate -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sht -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sht ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_get_properties -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_oneview_error -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_oneview_error ... ok -ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_validate ... ok - -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-d669cde7-b911-4921-bb58-6bd380d18c6b -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.26 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.654387+00:00", "updated_at": null} -GET: /v1/volume/connectors?detail=True {} -GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.875493+00:00', 'updated_at': None}]} -GET: /v1/volume/connectors?detail=False {} -GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': '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?fields=uuid,extra {} -GOT:{'connectors': [{'uuid': '3722a16a-cbeb-44f7-8ec3-677c1f0662ee', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/3722a16a-cbeb-44f7-8ec3-677c1f0662ee', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3722a16a-cbeb-44f7-8ec3-677c1f0662ee', 'rel': 'bookmark'}]}, {'uuid': '1926bb4d-c79b-4e5f-895d-f8c6beff1e11', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/1926bb4d-c79b-4e5f-895d-f8c6beff1e11', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1926bb4d-c79b-4e5f-895d-f8c6beff1e11', 'rel': 'bookmark'}]}, {'uuid': '4b12135c-fc0c-49be-be76-a59a056ffb4a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/4b12135c-fc0c-49be-be76-a59a056ffb4a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4b12135c-fc0c-49be-be76-a59a056ffb4a', 'rel': 'bookmark'}]}]} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} +PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/management_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-d638e871-09f1-4946-8e58-5fbf905dc780 +Openstack-Request-Id: req-5e2d4ba3-6760-4fb8-9aca-871b459a416a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.741805+00:00", "updated_at": null} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:11.741805+00:00', 'updated_at': None} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] -GOT:Response: 400 Bad Request +{"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} +PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/power_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dc50698e-7ea6-4d06-8dc4-fbc16b44320d +Openstack-Request-Id: req-9d141425-4a49-436a-837c-007d742537ca X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"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 +{"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} +PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/raid_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fd659707-9b16-4614-b785-afec22fbe003 +Openstack-Request-Id: req-459bd42e-10f7-4d2a-9e32-d046c35b2ff6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute boot_index. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} -Running batches of 50 until migrations have been completed. -Data migrations have completed. -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_fail -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_supported_power_states -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_supported_power_states ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_exception -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_exception ... ok +{"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"}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_storage_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_fail +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port ... ok -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-87607227-3395-43d7-a7f8-54b049aff27f -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/c3f19a71-3e67-436b-aae8-2bf701da0c2a [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-b268a516-4ab3-4c1d-8f1f-11808f83b48d -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.21 -{"uuid": "c3f19a71-3e67-436b-aae8-2bf701da0c2a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c3f19a71-3e67-436b-aae8-2bf701da0c2a", "rel": "self"}, {"href": "http://localhost/nodes/c3f19a71-3e67-436b-aae8-2bf701da0c2a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c3f19a71-3e67-436b-aae8-2bf701da0c2a/ports", "rel": "self"}, {"href": "http://localhost/nodes/c3f19a71-3e67-436b-aae8-2bf701da0c2a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c3f19a71-3e67-436b-aae8-2bf701da0c2a/states", "rel": "self"}, {"href": "http://localhost/nodes/c3f19a71-3e67-436b-aae8-2bf701da0c2a/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2023-01-07T00:10:05.161241+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'power_state': 'new state'}] +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d6392d3b-3bd0-4993-9ece-20928d531304 +Openstack-Request-Id: req-632ab31a-72a5-410a-8c39-659c920c81ef X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument patch: power_state\", \"debuginfo\": null}"} -PATCH: /v1/nodes/e3aa5b90-a77f-46e6-a167-4620514d9c6d [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-9cf0606d-6112-4dd0-8053-56cd5578556d -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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 {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-0e9d22b6-1eaa-4db0-ac57-751c58aeef2c -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.33 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "storage_interface": "cinder", "vendor_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'storage_interface': 'cinder', 'vendor_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_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.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.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_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_node.TestPut.test_inspect_already_in_progress -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_node_in_use_by_oneview -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_node_in_use_by_oneview ... 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_with_configdrive_not_active -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets ... ok - -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'value': '1', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9513287e-2513-41ab-b8ab-56ad7c4e09a2 +Openstack-Request-Id: req-182585e2-398d-4e58-b135-e22ab4ece454 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/chassis_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} -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-0b5f2ecf-f05b-4eb2-b5f4-e998843251e7 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node. Value: 'ports'. unable to convert to Node. Error: __init__() takes 1 positional argument but 2 were given\", \"debuginfo\": null}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test +GOT:Response: 202 Accepted Content-Type: application/json -Openstack-Request-Id: req-2b30eef5-81e1-4763-bc44-82ad2e1e12ea +Openstack-Request-Id: req-f94630ef-ac6c-42fe-9c68-f07c0e6b3c59 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.10 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"management\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'states'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +null +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {'test_key': 'test_value'} +GOT:Response: 202 Accepted Content-Type: application/json -Openstack-Request-Id: req-d4dcdd47-7759-403c-ae5a-c67de76aa652 +Openstack-Request-Id: req-e07e1fca-bc6d-4378-8039-6ebcf61ec3a8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.10 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"states\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'vendor_passthru'}] +X-Openstack-Ironic-Api-Version: 1.1 +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-a034ccc4-bbe2-43c1-8f04-f73c9c43c67d +Openstack-Request-Id: req-b95434b6-4ce2-45ca-900c-ae51656abc0e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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'}] +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-8706efbe-0e08-4127-a2be-9147e6f49b85 +Openstack-Request-Id: req-70418dbd-1ea2-4fe9-8753-2cebbb1771bc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.10 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"detail\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'validate'}] +X-Openstack-Ironic-Api-Version: 1.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-89f4b697-7665-4786-ad36-ab5faaf142ce -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.10 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"validate\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-0d0f0ab9-94fb-4766-9f2b-f42f6977b884 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.451698+00:00"} -PATCH: /v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3c4e7e4f-d6e1-4093-b89e-eb114c5fa83d -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.451698+00:00"} -PATCH: /v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-a15aca4e-648d-4e39-8777-911c1f802e60 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.451698+00:00"} -PATCH: /v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-00a2b4b2-e0e1-46d5-ba51-7281fe924f12 +Openstack-Request-Id: req-24626056-9144-4b3c-80cd-d50c8cd87ae7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.451698+00:00"} -PATCH: /v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3d452355-727e-4ee6-b280-c7814118a579 +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/node-39/states/power {'target': 'power on'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/node-39/states +Openstack-Request-Id: req-d1560cd3-585c-46e3-8656-3397d893d3ec X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.451698+00:00"} -PATCH: /v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1 [{'path': '/power_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.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done ... ok +X-Openstack-Ironic-Api-Version: 1.5 -GET: /v1/ports {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} -GET: /v1/ports?detail=False {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} -GET: /v1/ports/detail?sort_key=pxe_enabled {} -GOT:{'ports': [{'uuid': '5b71f341-6ecb-4632-a956-f2c4852afaa1', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': False, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/5b71f341-6ecb-4632-a956-f2c4852afaa1', 'rel': 'self'}, {'href': 'http://localhost/ports/5b71f341-6ecb-4632-a956-f2c4852afaa1', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:09.556975+00:00', 'updated_at': None}, {'uuid': '8a4abc5f-9be8-469a-aee2-422bb1b4554d', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/8a4abc5f-9be8-469a-aee2-422bb1b4554d', 'rel': 'self'}, {'href': 'http://localhost/ports/8a4abc5f-9be8-469a-aee2-422bb1b4554d', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:09.559470+00:00', 'updated_at': None}]} -GET: /v1/ports?detail=True&fields=name {} +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-1b963eb5-c0b8-47c9-9de4-b4d160f7d7be +Openstack-Request-Id: req-12c984bf-550a-4aa4-abc5-1de66083f69f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-23412d32-34f5-4a6b-8fec-8a08b0d1fbf9 +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-61d466b6-c9f5-4124-9b06-6a57677c3b49 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/detail {} -GOT:{'ports': [{'uuid': 'f58e958e-37f4-4afb-8291-df90725839d5', 'address': '66:44:55:33:11:22', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/f58e958e-37f4-4afb-8291-df90725839d5', 'rel': 'self'}, {'href': 'http://localhost/ports/f58e958e-37f4-4afb-8291-df90725839d5', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.348265+00:00', 'updated_at': None}]} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] +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-df3cdc5f-4de8-4f79-a778-da7a901a8a33 +Openstack-Request-Id: req-365c0b91-d16c-4b39-84d7-7482b2eb18fb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.33 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/ports/d6e4573e-ba03-4834-812f-cbb9070c8391 [{'path': '/extra/vif_port_id', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-d833be93-4fdb-49d5-9df4-87c85282afab +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-5813ed32-e21c-49e1-b733-2ebf8de5fa3d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 -{"uuid": "d6e4573e-ba03-4834-812f-cbb9070c8391", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/d6e4573e-ba03-4834-812f-cbb9070c8391", "rel": "self"}, {"href": "http://localhost/ports/d6e4573e-ba03-4834-812f-cbb9070c8391", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.685648+00:00", "updated_at": "2023-01-07T00:10:10.769641+00:00"} -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-683616dd-451a-4538-b531-b7189051ea11 +X-Openstack-Ironic-Api-Version: 1.5 + +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-9f6137d1-5751-40c9-bf19-b562397bcec1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 + +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d20e7e10-05cf-4b81-a2ea-65d89f319895 +Openstack-Request-Id: req-20eeafd2-22c2-45d3-b7f2-3c5ac218f62f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute port_uuid. Value: '52:54:00:cf:2d:31'. unable to convert to uuid. Error: Expected a UUID but received 52:54:00:cf:2d:31.\", \"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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/node-39/traits/CUSTOM_1 +GOT:Response: 409 Conflict Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-73f5ae49-385f-43ce-af60-2e92caaef84f +Openstack-Request-Id: req-05f6a8f2-0213-46b8-88ed-e3fd9bf2b44a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.269464+00:00", "updated_at": null} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': 'aa:bb:cc:dd:ee:ff', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:11.269464+00:00', 'updated_at': None}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_port.TestPost.test_create_port_local_link_connection_keys -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_keys ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_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_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_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_portgroup.TestListPortgroups.test_ports_subresource_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_API_agent_version_error ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_ignore_malformed_address ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_invalid_key -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_invalid_key ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroup_mode_properties -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroup_mode_properties ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields_fail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_connector_id_already_exist ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities ... ok - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': None, 'console_interface': None, 'deploy_interface': None, 'inspect_interface': None, 'management_interface': None, 'network_interface': None, 'power_interface': None, 'raid_interface': None, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2023-01-07T00:10:05.837838+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} +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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -GOT:{'ports': [{'uuid': 'd18df2be-20bf-499e-9304-a481f1ac9722', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/d18df2be-20bf-499e-9304-a481f1ac9722', 'rel': 'self'}, {'href': 'http://localhost/ports/d18df2be-20bf-499e-9304-a481f1ac9722', 'rel': 'bookmark'}]}, {'uuid': 'aaf637d7-6883-4467-8f44-4ab540d5a2fd', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/aaf637d7-6883-4467-8f44-4ab540d5a2fd', 'rel': 'self'}, {'href': 'http://localhost/ports/aaf637d7-6883-4467-8f44-4ab540d5a2fd', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} -GOT:{'ports': [{'uuid': 'd18df2be-20bf-499e-9304-a481f1ac9722', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/d18df2be-20bf-499e-9304-a481f1ac9722', 'rel': 'self'}, {'href': 'http://localhost/ports/d18df2be-20bf-499e-9304-a481f1ac9722', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=1&marker=d18df2be-20bf-499e-9304-a481f1ac9722'} -PATCH: /v1/nodes/d1d5cd34-f716-402c-8ca4-7c82ef13b623 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-44114916-aad1-46be-92ad-2c20625a1fca -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node d1d5cd34-f716-402c-8ca4-7c82ef13b623 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/2b0082e4-b263-4f00-ae72-7b8223b09398 [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] -GOT:Response: 400 Bad Request +GET: /v1/nodes/badname/traits {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-645f294e-50a2-464d-9aa1-53f0e447215e +Openstack-Request-Id: req-c54c0f2f-1c6b-43c9-a17c-9520c9d23326 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.42 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/fault' is an internal attribute and can not be updated\", \"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-714aa77f-2148-4834-88d9-a91b2c48c7a3 +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 204 No Content +Openstack-Request-Id: req-28c1a355-1973-48d6-92ca-6f088c72dd0e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/chassis_id', 'op': 'remove'}] +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_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_portgroups_subresource_invalid_ident +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_extra_vif_port_id +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_extra_vif_port_id ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_disk_label +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_disk_label ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi ... ok + +GET: /v1/ports?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8efd6318-f977-4f5d-921b-b5d70ec27059 +Openstack-Request-Id: req-fa1be383-cf10-4a62-a11d-8961902c35e5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/chassis_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'chassis_id'\", \"debuginfo\": null}"} -PATCH: /v1/nodes/e21486f2-7633-4a85-a89c-8e6e02a88bc7 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'invalid-mac-format'. unable to convert to macaddress. Error: Expected a MAC address but received invalid-mac-format.\", \"debuginfo\": null}"} +PATCH: /v1/ports/50c3c246-6cc3-43c0-929d-bc05beac8046 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-03e475f4-4b5a-4fdd-984c-1b690f14ca93 +Openstack-Request-Id: req-246fd7b4-d5db-4c31-910c-460e44c888f0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "e21486f2-7633-4a85-a89c-8e6e02a88bc7", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "deploy failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/e21486f2-7633-4a85-a89c-8e6e02a88bc7", "rel": "self"}, {"href": "http://localhost/nodes/e21486f2-7633-4a85-a89c-8e6e02a88bc7", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/e21486f2-7633-4a85-a89c-8e6e02a88bc7/ports", "rel": "self"}, {"href": "http://localhost/nodes/e21486f2-7633-4a85-a89c-8e6e02a88bc7/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:07.217922+00:00"} -PATCH: /v1/nodes/ce6baa8c-55dd-41b7-9af7-3d2daa1c0849 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "50c3c246-6cc3-43c0-929d-bc05beac8046", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/50c3c246-6cc3-43c0-929d-bc05beac8046", "rel": "self"}, {"href": "http://localhost/ports/50c3c246-6cc3-43c0-929d-bc05beac8046", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.455692+00:00", "updated_at": "2021-12-04T17:54:01.559266+00:00"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/ba0a36ad-b823-41c7-9869-1f4e09f95ae0 [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-ef5476b2-1600-4c8f-aa8b-c7c92f69f559 +Openstack-Request-Id: req-a428b3e5-2673-4cf6-ac6d-d9e19284faf9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "ce6baa8c-55dd-41b7-9af7-3d2daa1c0849", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/ce6baa8c-55dd-41b7-9af7-3d2daa1c0849", "rel": "self"}, {"href": "http://localhost/nodes/ce6baa8c-55dd-41b7-9af7-3d2daa1c0849", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ce6baa8c-55dd-41b7-9af7-3d2daa1c0849/ports", "rel": "self"}, {"href": "http://localhost/nodes/ce6baa8c-55dd-41b7-9af7-3d2daa1c0849/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:07.360017+00:00"} -PATCH: /v1/nodes/b55faf1e-ba19-4be2-bdbe-731e01746210 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-1ba4a64a-215e-45bb-8156-cff1dac50fc2 +Openstack-Request-Id: req-3fd71a54-134d-4184-8380-b8b15195c98e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "b55faf1e-ba19-4be2-bdbe-731e01746210", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspect failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b55faf1e-ba19-4be2-bdbe-731e01746210", "rel": "self"}, {"href": "http://localhost/nodes/b55faf1e-ba19-4be2-bdbe-731e01746210", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b55faf1e-ba19-4be2-bdbe-731e01746210/ports", "rel": "self"}, {"href": "http://localhost/nodes/b55faf1e-ba19-4be2-bdbe-731e01746210/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:07.436410+00:00"} -PATCH: /v1/nodes/97e30059-1cc7-49db-9881-2ba7b1ce4bde [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +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': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d0fead33-59f9-44f2-923e-13170a471dd2 +Openstack-Request-Id: req-e2d81a62-cf5f-4318-a8ad-1bfbdf396c8d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "97e30059-1cc7-49db-9881-2ba7b1ce4bde", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "inspecting", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/97e30059-1cc7-49db-9881-2ba7b1ce4bde", "rel": "self"}, {"href": "http://localhost/nodes/97e30059-1cc7-49db-9881-2ba7b1ce4bde", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/97e30059-1cc7-49db-9881-2ba7b1ce4bde/ports", "rel": "self"}, {"href": "http://localhost/nodes/97e30059-1cc7-49db-9881-2ba7b1ce4bde/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:07.518110+00:00"} -PATCH: /v1/nodes/ba78475a-be55-473b-95b0-1eebfd63ff94 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.34 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": "physnet2", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.059705+00:00", "updated_at": "2021-12-04T17:54:02.124718+00:00"} +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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-13527261-c4ce-44e0-b35b-1c6630ef78dc +Location: http://localhost/v1/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef +Openstack-Request-Id: req-2ea58004-cf68-4024-96ab-49142f837f55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "ba78475a-be55-473b-95b0-1eebfd63ff94", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "clean failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/ba78475a-be55-473b-95b0-1eebfd63ff94", "rel": "self"}, {"href": "http://localhost/nodes/ba78475a-be55-473b-95b0-1eebfd63ff94", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ba78475a-be55-473b-95b0-1eebfd63ff94/ports", "rel": "self"}, {"href": "http://localhost/nodes/ba78475a-be55-473b-95b0-1eebfd63ff94/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:07.658870+00:00"} -PATCH: /v1/nodes/68b7fe6a-1c73-45ea-bca6-7867d14cec16 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "275a981d-ea8f-42b1-9d5c-485fd02e56ef", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef", "rel": "self"}, {"href": "http://localhost/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.416197+00:00", "updated_at": null} +GET: /v1/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef {} +GOT:{'uuid': '275a981d-ea8f-42b1-9d5c-485fd02e56ef', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef', 'rel': 'self'}, {'href': 'http://localhost/ports/275a981d-ea8f-42b1-9d5c-485fd02e56ef', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.416197+00:00', 'updated_at': None} +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, '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-c805459f-7b3c-4967-b3bd-ec9cc9dbce0e +Openstack-Request-Id: req-b73eeb84-d397-47c1-a93d-b1122e0d155a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "68b7fe6a-1c73-45ea-bca6-7867d14cec16", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "error", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/68b7fe6a-1c73-45ea-bca6-7867d14cec16", "rel": "self"}, {"href": "http://localhost/nodes/68b7fe6a-1c73-45ea-bca6-7867d14cec16", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/68b7fe6a-1c73-45ea-bca6-7867d14cec16/ports", "rel": "self"}, {"href": "http://localhost/nodes/68b7fe6a-1c73-45ea-bca6-7867d14cec16/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:07.736287+00:00"} -PATCH: /v1/nodes/c0784d5d-db15-4f5e-8a70-5e9a0d1c414e [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-f2fa2d0e-63f4-4e82-a7f9-6e687b6076ee +Openstack-Request-Id: req-8f9d39b3-402f-4b12-afe1-76767432b282 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "c0784d5d-db15-4f5e-8a70-5e9a0d1c414e", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "verifying", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/c0784d5d-db15-4f5e-8a70-5e9a0d1c414e", "rel": "self"}, {"href": "http://localhost/nodes/c0784d5d-db15-4f5e-8a70-5e9a0d1c414e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c0784d5d-db15-4f5e-8a70-5e9a0d1c414e/ports", "rel": "self"}, {"href": "http://localhost/nodes/c0784d5d-db15-4f5e-8a70-5e9a0d1c414e/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:07.834560+00:00"} -PATCH: /v1/nodes/b62fc530-400d-466a-94f8-0dcb26ade3c7 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.46 +{"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/portgroups/detail?sort_key=mode {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-49a14a6d-cd13-4cbc-b0d0-a2df8080ead5 +Openstack-Request-Id: req-fe05f942-8e29-475e-a28d-a1223d70db01 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "b62fc530-400d-466a-94f8-0dcb26ade3c7", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "adopt failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b62fc530-400d-466a-94f8-0dcb26ade3c7", "rel": "self"}, {"href": "http://localhost/nodes/b62fc530-400d-466a-94f8-0dcb26ade3c7", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b62fc530-400d-466a-94f8-0dcb26ade3c7/ports", "rel": "self"}, {"href": "http://localhost/nodes/b62fc530-400d-466a-94f8-0dcb26ade3c7/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:07.909885+00:00"}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.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_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_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_port.TestListPorts.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_reraise -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_reraise ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_clean_version_mismatch_fail -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_clean_version_mismatch_fail ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_netboot -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_netboot ... ok -Traceback (most recent call last): - File "/build/ironic-11.1.0/ironic/drivers/modules/inspector.py", line 148, in _start_inspection - _get_client(context).introspect(node_uuid) - File "/build/ironic-11.1.0/ironic/drivers/modules/inspector.py", line 61, in _get_client - inspector_url = adapter.get_endpoint() - File "/usr/lib/python3/dist-packages/keystoneauth1/adapter.py", line 247, in get_endpoint - return self.session.get_endpoint(auth or self.auth, **kwargs) - File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 1111, in get_endpoint - auth = self._auth_required(auth, 'determine endpoint URL') - File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 1051, in _auth_required - raise exceptions.MissingAuthPlugin(msg_fmt % msg) -keystoneauth1.exceptions.auth_plugins.MissingAuthPlugin: An auth plugin is required to determine endpoint URL - -During handling of the above exception, another exception occurred: - -Traceback (most recent call last): - File "/usr/lib/python3/dist-packages/eventlet/hubs/hub.py", line 457, in fire_timers - timer() - File "/usr/lib/python3/dist-packages/eventlet/hubs/timer.py", line 58, in __call__ - cb(*args, **kw) - File "/build/ironic-11.1.0/ironic/drivers/modules/inspector.py", line 157, in _start_inspection - purpose=lock_purpose) as task: - File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 165, in acquire - return TaskManager(context, node_id, shared=shared, purpose=purpose) - File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 238, in __init__ - self.release_resources() - File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ - self.force_reraise() - File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise - six.reraise(self.type_, self.value, self.tb) - File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise - raise value - File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 222, in __init__ - self._lock() - File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 270, in _lock - reserve_node() - File "/usr/lib/python3/dist-packages/retrying.py", line 49, in wrapped_f - return Retrying(*dargs, **dkw).call(f, *args, **kw) - File "/usr/lib/python3/dist-packages/retrying.py", line 206, in call - return attempt.get(self._wrap_exception) - File "/usr/lib/python3/dist-packages/retrying.py", line 247, in get - six.reraise(self.value[0], self.value[1], self.value[2]) - File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise - raise value - File "/usr/lib/python3/dist-packages/retrying.py", line 200, in call - attempt = Attempt(fn(*args, **kwargs), attempt_number, False) - File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 263, in reserve_node - self.node_id) - File "/build/ironic-11.1.0/ironic/objects/node.py", line 324, in reserve - db_node = cls.dbapi.reserve_node(tag, node_id) - File "/usr/lib/python3/dist-packages/oslo_db/api.py", line 154, in wrapper - ectxt.value = e.inner_exc - File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ - self.force_reraise() - File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise - six.reraise(self.type_, self.value, self.tb) - File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise - raise value - File "/usr/lib/python3/dist-packages/oslo_db/api.py", line 142, in wrapper - return f(*args, **kwargs) - File "/build/ironic-11.1.0/ironic/db/sqlalchemy/api.py", line 307, in reserve_node - raise exception.NodeNotFound(node_id) -ironic.common.exception.NodeNotFound: 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception ... ok +X-Openstack-Ironic-Api-Version: 1.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.1', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.807473+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_suffix ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_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_portgroup.TestPatch.test_update_address_invalid_format +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_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_ramdisk.TestLookup.test_no_restrict_lookup +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_mandatory_attr +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_mandatory_attr ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_missing_required_fields_op ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_empty_value ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_pin +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_pin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_ramdisk_endpoints +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_ramdisk_endpoints ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_fail ... 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_volume_connector.TestListVolumeConnectors.test_detail_against_single +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_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_volume_connector.TestPatch.test_remove_non_existent_property_fail +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version ... ok +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ... 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.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.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_allowed ... ok +ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session +ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail ... ok +ironic.tests.unit.common.test_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.HttpImageServiceTestCase.test_download_fail_ioerror +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_ioerror ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_default_v1 +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_default_v1 ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_with_ExecutionError +ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_with_ExecutionError ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi ... ok +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port ... ok +ironic.tests.unit.common.test_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.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.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id +ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid ... ok +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_with_trailing_slash +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_with_trailing_slash ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_raid_level ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_throws_for_invalid_or_unsupported_hash +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_throws_for_invalid_or_unsupported_hash ... ok +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file ... ok +ironic.tests.unit.conductor.test_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.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.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled ... ok +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full +ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_unset_clean_step +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_unset_clean_step ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2_old +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2_old ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive_old ... ok +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set ... ok +ironic.tests.unit.conductor.test_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.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ... 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.conductor.test_manager.NmiTestCase.test_inject_nmi +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ... 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.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty ... ok +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties ... ok +ironic.tests.unit.conductor.test_manager.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.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_disabled ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ... ok +ironic.tests.unit.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.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ... 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.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_power_on ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_http_method_not_supported ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface ... ok +ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets +ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ... 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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ... 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.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_class_action_versions_invalid_version +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list ... 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.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail ... ok +ironic.tests.unit.conductor.test_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.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_missing_required_arg ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach ... ok +ironic.tests.unit.conductor.test_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_noop.NoInterfacesTestCase.test_bios +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image ... ok -PATCH: /v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03 [{'path': '/raid_interface', 'op': 'remove'}] -GOT:Response: 200 OK +POST: /v1/nodes {'name': None, '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, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-31186e5e-6224-4153-8407-47b7cbeb39d4 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-917addcb-54d1-4238-9cd4-52568e5185a9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "b57b081a-d960-4987-9116-07873b5ffe03", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.803986+00:00"} -PATCH: /v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03 [{'path': '/vendor_interface', 'op': 'remove'}] -GOT:Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "conductor_group": "foo", "updated_at": null, "created_at": "2021-12-04T17:53:57.966529+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'fault': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'deploy_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'conductor_group': 'foo', 'updated_at': None, 'created_at': '2021-12-04T17:53:57.966529+00:00'} +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-06b662e4-d281-4db8-9899-57fc4fa8d257 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.17 + +PUT: /v1/nodes/node-39/states/power {'target': 'power on'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2d1b1562-53f1-4196-81fd-7695b5d07931 +Openstack-Request-Id: req-5d8ddeb3-c03a-4b53-9177-82e9f07a69e6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "b57b081a-d960-4987-9116-07873b5ffe03", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "self"}, {"href": "http://localhost/nodes/b57b081a-d960-4987-9116-07873b5ffe03/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.803986+00:00"} -POST: /v1/nodes {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +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': 'provide', 'clean_steps': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3c306f31-e790-41a4-9196-ea179247f1a1 +Openstack-Request-Id: req-02974794-2b20-4ce5-82e3-7590cc9db64e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean'} +X-Openstack-Ironic-Api-Version: 1.4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is only valid when setting target provision state to clean\", \"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-d50cd3f0-4bff-4fe2-9f0d-c3c9fd19663b +Openstack-Request-Id: req-d6ccbeca-3da5-4511-97fc-5b9347287399 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute enabled. Value: 'invalid-value'. unable to convert to boolean. Error: 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-ed73155e-d500-4c07-9f87-a5b6ab69dc35 +Openstack-Request-Id: req-ebb000d0-6bfd-42c4-a97b-9ab9701acda9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/states/provision {'target': 'unrescue'} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"enabled\\\"\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-02e1b285-17ec-4750-8ad8-b18a1390ab50 +Openstack-Request-Id: req-5730d274-2e37-4b62-a957-75edcb756739 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 +X-Openstack-Ironic-Api-Version: 1.1 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.TestTraits.test_delete_trait +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_port.TestListPorts.test_detail +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_with_incorrect_api_usage ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.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_port.TestPatch.test_remove_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet ... ok +ironic.tests.unit.drivers.modules.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 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-5800c271-14ba-4b16-9a01-8f6bdfdd9a11 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:58.000395+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'available', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'class1', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2021-12-04T17:53:58.000395+00:00'} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} +GOT:Response: 204 No Content +Openstack-Request-Id: req-1fe5038b-e160-4e45-ab27-b7eda61b9210 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.29 + +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-817518b7-2c81-4807-9c5c-7a6759738015 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': 2} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-89505dd2-3d67-4a37-84cb-6759fb097bbf +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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-2c9d3090-4992-4631-ac58-497793c03499 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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/provision {'target': 'deleted'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-91bc3863-1092-471a-ade0-eee9a73aeb52 +Openstack-Request-Id: req-089e8f9f-54c5-4acb-ba2e-d99a21abf99e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 +X-Openstack-Ironic-Api-Version: 1.1 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} +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-cc53f899-d190-4010-ab9b-9e55a41c4c5f +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-fa11b073-4f4b-49d6-b9b6-51e62e985c01 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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/node-39/maintenance {} GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-505679fe-c6d3-4650-a0d2-ce018cda750e +Openstack-Request-Id: req-52f5a61e-491f-4179-ad85-6cb429d3a018 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -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_node.TestPut.test_put_raid_invalid_parameter_value -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request ... ok -ironic.tests.unit.api.controllers.v1.test_node.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 +X-Openstack-Ironic-Api-Version: 1.5 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4.json {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:07.743675+00:00', 'updated_at': None} -GET: /v1/portgroups {} -GOT:{'portgroups': [{'uuid': 'fde8c66b-eddc-4d05-ac70-5370fc0fe766', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/fde8c66b-eddc-4d05-ac70-5370fc0fe766', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fde8c66b-eddc-4d05-ac70-5370fc0fe766', 'rel': 'bookmark'}]}, {'uuid': '321a8f58-6d06-4953-bc05-239411f6a284', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/321a8f58-6d06-4953-bc05-239411f6a284', 'rel': 'self'}, {'href': 'http://localhost/portgroups/321a8f58-6d06-4953-bc05-239411f6a284', 'rel': 'bookmark'}]}, {'uuid': '7771dfb0-d4ee-4a88-9d48-fa11f265bd38', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/7771dfb0-d4ee-4a88-9d48-fa11f265bd38', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7771dfb0-d4ee-4a88-9d48-fa11f265bd38', 'rel': 'bookmark'}]}, {'uuid': '6c1fa861-e212-4bcd-b3d3-c2229c33a4d0', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/6c1fa861-e212-4bcd-b3d3-c2229c33a4d0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6c1fa861-e212-4bcd-b3d3-c2229c33a4d0', 'rel': 'bookmark'}]}, {'uuid': '398c4bc9-9036-4c70-ab2b-38c694f62759', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/398c4bc9-9036-4c70-ab2b-38c694f62759', 'rel': 'self'}, {'href': 'http://localhost/portgroups/398c4bc9-9036-4c70-ab2b-38c694f62759', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?sort_key=mode {} -GOT:{'portgroups': [{'uuid': 'edb04f34-2e73-4a62-b8e8-86c05f6d2796', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/edb04f34-2e73-4a62-b8e8-86c05f6d2796', 'rel': 'self'}, {'href': 'http://localhost/portgroups/edb04f34-2e73-4a62-b8e8-86c05f6d2796', 'rel': 'bookmark'}]}, {'uuid': 'f4c2cd2d-e94d-4c40-bfb3-f2903772dde1', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/f4c2cd2d-e94d-4c40-bfb3-f2903772dde1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f4c2cd2d-e94d-4c40-bfb3-f2903772dde1', 'rel': 'bookmark'}]}, {'uuid': 'e51b91df-ebaf-47ec-b259-a1b0a7c7cedf', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/e51b91df-ebaf-47ec-b259-a1b0a7c7cedf', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e51b91df-ebaf-47ec-b259-a1b0a7c7cedf', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?sort_key=foo {} +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-97f421d7-2989-4b12-bbc0-a550ee81cc68 +Openstack-Request-Id: req-5c493d1d-09fb-4579-a152-20e5a5d3ac63 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/portgroups?sort_key=extra {} +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"too many traits\", \"debuginfo\": null}"} +PUT: /v1/nodes/node-39/traits {'trait': 'CUSTOM_3'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5c25d6e7-64d1-4a98-89cb-0b977529f380 +Openstack-Request-Id: req-f2f159ea-43ac-428d-94ec-226b486ac333 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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 {} +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No body should be provided when adding a trait\", \"debuginfo\": null}"} +PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b2516c16-97e3-4a4e-b17c-40dd2a8bb331 +Openstack-Request-Id: req-e9c043a0-5ca9-47c5-902d-6b7b4e26ccec X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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 {} +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} +GET: /v1/ports?detail=True {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': False, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, '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'}], 'created_at': '2021-12-04T17:54:01.256552+00:00', 'updated_at': None}]}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_internal +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id_not_internal ... 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_port.TestPost.test_create_port_invalid_physnet_non_text +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_switch_id_bad_mac ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_node_uuid_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_portgroup.TestDelete.test_delete_portgroup_byname_with_json +ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version ... ok + +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 {'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a121b14d-40e9-43f2-b7f4-fb9bd5deffb8 +Openstack-Request-Id: req-3d2f4ca0-8400-4a91-af05-18a193c996e2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'value': '1', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\", \"debuginfo\": null}"} +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-bcc5a9fd-2ae2-46e5-8fbf-0e240d6433a4 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': 'abort'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-048e52d4-bb36-4d64-af87-c5c0eaaa7a5a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.41 + +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-59575773-bb23-42e7-ba29-b7cf64224dbe +Openstack-Request-Id: req-5fadb51c-4852-43a5-8341-4573f2969d12 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} +PUT: /v1/nodes/node-39/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-9a50280b-2df3-43ec-bf7e-305e2c56c394 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.5 + +DELETE: /v1/nodes/node-39/traits/CUSTOM_12 +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-9e724dd6-62bc-46bc-b7a8-d0edd9f0adec +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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}"} +PUT: /v1/nodes/node-39/traits {'traits': []} +GOT:Response: 204 No Content +Openstack-Request-Id: req-e6815123-66e4-4f74-a0d5-9460f3c7347d +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.37 + +GET: /v1/ports {} +GOT:{'ports': []} +GET: /v1/ports {} +GOT:{'ports': [{'uuid': '24e4175e-ba7d-4eb9-aba1-2917cd771c32', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/24e4175e-ba7d-4eb9-aba1-2917cd771c32', 'rel': 'self'}, {'href': 'http://localhost/ports/24e4175e-ba7d-4eb9-aba1-2917cd771c32', 'rel': 'bookmark'}]}, {'uuid': 'a068f27b-a926-4f22-bc70-d3ec1b6db0ca', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/a068f27b-a926-4f22-bc70-d3ec1b6db0ca', 'rel': 'self'}, {'href': 'http://localhost/ports/a068f27b-a926-4f22-bc70-d3ec1b6db0ca', 'rel': 'bookmark'}]}, {'uuid': 'd9c9b211-0596-4ae0-a20d-6f19a9eacfd3', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/d9c9b211-0596-4ae0-a20d-6f19a9eacfd3', 'rel': 'self'}, {'href': 'http://localhost/ports/d9c9b211-0596-4ae0-a20d-6f19a9eacfd3', 'rel': 'bookmark'}]}, {'uuid': '717de3a5-d986-43d1-8e83-697234b4263a', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/717de3a5-d986-43d1-8e83-697234b4263a', 'rel': 'self'}, {'href': 'http://localhost/ports/717de3a5-d986-43d1-8e83-697234b4263a', 'rel': 'bookmark'}]}, {'uuid': '72a00a49-7f30-4027-8e27-1040e0dba09a', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/72a00a49-7f30-4027-8e27-1040e0dba09a', 'rel': 'self'}, {'href': 'http://localhost/ports/72a00a49-7f30-4027-8e27-1040e0dba09a', 'rel': 'bookmark'}]}]} +GET: /v1/ports?sort_key=pxe_enabled {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-58fe348d-0a21-47a4-a551-72744aff883d +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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}"} +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-8fac01bb-cc12-4d11-a9db-fb577317a6cf +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': '/physical_network', 'op': 'remove'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-bd8f6170-d057-4e64-9a5f-f6f7e7676be7 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': '/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-8704649e-bab3-40b3-a436-a4bf732d7ff3 +Openstack-Request-Id: req-727a2815-601b-4417-92c8-5c1324e5ab07 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:08.844671+00:00", "updated_at": null} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.452333+00:00", "updated_at": "2021-12-04T17:54:02.504918+00:00"} +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-72fa28ab-a08c-4c2a-a337-3d4090c427b4 +Openstack-Request-Id: req-0c05dd4f-f3cb-4f38-b73a-8c60f97da0f2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.057433+00:00", "updated_at": "2023-01-07T00:10:09.138275+00:00"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}]ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_collection_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_diff_internal -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_diff_internal ... 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_port.TestPatch.test_remove_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_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_portgroup_uuid_remove_add -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_doesnt_contain_id ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_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_ramdisk.TestHeartbeat.test_ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_mandatory_attr -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_mandatory_attr ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid -ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_internal_info -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_internal_info ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_traits -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_traits ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface ... 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_volume_connector.TestPatch.test_add_node_uuid_invalid_type -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid_invalid_type ... ok -ironic.tests.unit.api.controllers.v1.test_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.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_off_fails -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_off_fails ... ok +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.574069+00:00", "updated_at": "2021-12-04T17:54:02.653235+00:00"} +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-b1b30bd9-7303-4a1b-b879-5fc17d076446 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.38 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.740926+00:00", "updated_at": "2021-12-04T17:54:02.811268+00:00"}ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_port.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_port.TestPost.test_create_port_no_mandatory_field_address +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_no_mandatory_field_address ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_some_invalid_local_link_connection_key ... ok +ironic.tests.unit.api.controllers.v1.test_port.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_portgroup.TestListPortgroups.test_detail_against_single +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.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_portgroup.TestPatch.test_remove_address +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ... ok -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.294240+00:00', 'updated_at': None} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-2b1d23a0-9810-47ac-bc48-09d0bacc6c95 +Openstack-Request-Id: req-50de1903-66e8-47a3-a3da-a91c409fcd31 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.521525+00:00", "updated_at": null} -DELETE: /v1/portgroups/52:54:00:cf:2d:31 +X-Openstack-Ironic-Api-Version: 1.21 +{"uuid": "e62a08f3-bc69-42cb-9d68-7f637866ce4e", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e", "rel": "self"}, {"href": "http://localhost/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e/ports", "rel": "self"}, {"href": "http://localhost/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e/states", "rel": "self"}, {"href": "http://localhost/nodes/e62a08f3-bc69-42cb-9d68-7f637866ce4e/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2021-12-04T17:53:54.524099+00:00"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'power_state': 'new state'}] GOT:Response: 400 Bad Request Content-Type: application/json -{"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 52:54:00:cf:2d:31. "} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/detail {} -GOT:Response: 404 Not Found +Openstack-Request-Id: req-6b8add91-0d27-49c9-bf38-acb82aba0ece +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument patch: power_state\", \"debuginfo\": null}"} +PATCH: /v1/nodes/32199fb2-dd15-414f-a86a-8b302af0b385 [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f7f271a5-a6a0-4211-9230-9d7682f4490b +Openstack-Request-Id: req-064dd8dd-1b7e-4f9b-b6a6-59bc1c872b74 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} -GET: /v1/portgroups/detail?sort_key=mode {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node traits via node patch. Node traits should be updated via the node traits API.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-e0782310-e5c0-4ad2-b188-3b1e38934606 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 0} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-109835f7-1931-489d-8acc-262e7876b854 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 0.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-86bf752f-4d10-4b62-a1a2-a53544ec176f +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:55.991966+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid ... ok +ironic.tests.unit.api.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_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_node.TestPut.test_clean_check_steps_fail +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_check_steps_fail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_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_node.TestPut.test_provision_with_configdrive_not_active +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name ... ok + +GET: /v1/ports/detail?sort_key=pxe_enabled {} +GOT:{'ports': [{'uuid': 'a7a2b286-b8af-4d62-b9df-46bca4cdb26b', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': False, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/a7a2b286-b8af-4d62-b9df-46bca4cdb26b', 'rel': 'self'}, {'href': 'http://localhost/ports/a7a2b286-b8af-4d62-b9df-46bca4cdb26b', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.789085+00:00', 'updated_at': None}, {'uuid': '4b4f4cfa-a7c0-4dcf-b409-6f8913e223b5', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/4b4f4cfa-a7c0-4dcf-b409-6f8913e223b5', 'rel': 'self'}, {'href': 'http://localhost/ports/4b4f4cfa-a7c0-4dcf-b409-6f8913e223b5', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.791524+00:00', 'updated_at': None}]} +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?portgroup=fooname {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.140698+00:00', 'updated_at': None}]} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.356714+00:00', 'updated_at': None} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'foo': 'bar'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.356714+00:00', 'updated_at': None} +GET: /v1/portgroups/123 123/ports {} +GOT:Response: 400 Bad Request +Content-Type: application/json +{"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 123 123. "} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '365cde2c-2b4e-4c05-bd9e-8f49aebd0cdb', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-72e58bfe-dd3b-4009-b0e3-b100dfb25d44 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.24 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "365cde2c-2b4e-4c05-bd9e-8f49aebd0cdb", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.744015+00:00", "updated_at": "2021-12-04T17:54:03.834911+00:00"} +PATCH: /v1/ports/cb12c260-5f17-4da1-8709-e38fa1238906 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-a9049c98-4650-40ec-a87a-d64a483ebe7a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "cb12c260-5f17-4da1-8709-e38fa1238906", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/cb12c260-5f17-4da1-8709-e38fa1238906", "rel": "self"}, {"href": "http://localhost/ports/cb12c260-5f17-4da1-8709-e38fa1238906", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.981900+00:00", "updated_at": "2021-12-04T17:54:04.073036+00:00"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-fcb1607f-b111-41a9-b330-e0a708fe08c2 +Openstack-Request-Id: req-75ee7c66-9192-46cd-93d0-1ddb422a99a5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.25 +X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] -GOT:Response: 200 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': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-72094638-ab62-4eb3-9292-f72b89f5a8db +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-5c8057be-fbcd-421b-b9a4-e84ace722e79 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.139278+00:00", "updated_at": "2023-01-07T00:10:11.145577+00:00"} -PATCH: /v1/portgroups/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.371537+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -{"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 52:54:00:cf:2d:31. "} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-933001b3-1f59-4336-a1b8-42e4b06a4ef3 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.512940+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_extra_vif_port_id ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_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.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ... ok + GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-e37fafd5-0116-4c14-aafc-a21761160dcd +Openstack-Request-Id: req-b3218cd6-34cc-4123-9239-c7cb0109dc81 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +Openstack-Request-Id: req-e1762e8d-064b-429f-9333-0ac06bfea3e1 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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-17009872-1349-444a-aaef-bfa0225e6893 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.5 + +PUT: /v1/nodes/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-41f4a710-00da-47ee-8e30-c54904078243 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} +GET: /v1/ports?detail=True {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-b2261136-9a29-48c6-a20a-629e94e1ac0d +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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?fields=uuid,extra {} +GOT:{'ports': [{'uuid': '33eeaf6a-b52b-4ce9-8ce8-3d9ec2c1c391', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/33eeaf6a-b52b-4ce9-8ce8-3d9ec2c1c391', 'rel': 'self'}, {'href': 'http://localhost/ports/33eeaf6a-b52b-4ce9-8ce8-3d9ec2c1c391', 'rel': 'bookmark'}]}, {'uuid': '1114dc6b-840a-4c1d-b55a-033cdc597666', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/1114dc6b-840a-4c1d-b55a-033cdc597666', 'rel': 'self'}, {'href': 'http://localhost/ports/1114dc6b-840a-4c1d-b55a-033cdc597666', 'rel': 'bookmark'}]}, {'uuid': '13dc496c-0d87-412d-a930-6df2af7c94b8', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/13dc496c-0d87-412d-a930-6df2af7c94b8', 'rel': 'self'}, {'href': 'http://localhost/ports/13dc496c-0d87-412d-a930-6df2af7c94b8', 'rel': 'bookmark'}]}]} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:00.048367+00:00', 'updated_at': None} +GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +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-0f845f37-6e59-4fae-a7f6-0700513e4da9 +Openstack-Request-Id: req-5129cf68-fb68-4cb1-bf76-dc785e37c689 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.718593+00:00", "updated_at": "2023-01-07T00:10:11.794059+00:00"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 500 Internal Server Error +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:00.894987+00:00", "updated_at": "2021-12-04T17:54:01.084750+00:00"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-97c38a7f-f15d-44e0-9a73-26b94fbe4088 +Openstack-Request-Id: req-e04e8205-91bb-4cf1-a4ce-d6beed5a28ce X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"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} +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:00.894987+00:00", "updated_at": "2021-12-04T17:54:01.156854+00:00"} +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-d62f692f-c937-411a-b3f9-0e47100dd874 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': '/portgroup_uuid', 'value': 'ac73e22a-92cf-4a00-a6c4-f2b8d1dfed0d', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-db74fb4a-57cf-4af1-9ece-e07f2627f639 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.24 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.620507+00:00", "updated_at": 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, '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-2c2c0d82-5c20-4f8d-a8a9-2cc58cc4bcdf +Openstack-Request-Id: req-21e75333-641c-4cda-9411-b24b9c10d79d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"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_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_types.TestListType.test_list_type -ironic.tests.unit.api.controllers.v1.test_types.TestListType.test_list_type ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr -ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_optional_key -ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_optional_key ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive_fails -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive_fails ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_fail ... ok -ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume -ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_type ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.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_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_touch_provisioning_and_url_save -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_touch_provisioning_and_url_save ... 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_agent_client.TestAgentClient.test_install_bootloaderi_with_prep -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloaderi_with_prep ... 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_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_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_get_clean_steps ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_false -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_false ... 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_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.PhysicalWorkTestCase.test_deploy_partition_image_preserve_ephemeral -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_preserve_ephemeral ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_partition_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_partition_image ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good ... ok -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail ... ok -ironic.tests.unit.drivers.modules.test_image_cache.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_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot ... ok -ironic.tests.unit.drivers.modules.test_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 +{"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': {'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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra ... ok +ironic.tests.unit.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_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_portgroup.TestListPortgroups.test_detail_using_query_old_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_server_hardware_type +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_server_hardware_type ... ok -GET: /v1/volume/connectors/detail {} -GOT:Response: 400 Bad Request +PATCH: /v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d [{'path': '/vendor_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-79674850-6f57-4899-a785-5ae4a6826bec +Openstack-Request-Id: req-99452659-a391-40f6-b58b-d75c24605d0e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\", \"debuginfo\": null}"} -GET: /v1/volume/connectors?node=test-node {} -GOT:{'connectors': [{'uuid': 'c2cae578-165e-4a33-a539-475248ef2d3b', 'type': 'iqn', 'connector_id': 'test-value-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/c2cae578-165e-4a33-a539-475248ef2d3b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c2cae578-165e-4a33-a539-475248ef2d3b', 'rel': 'bookmark'}]}, {'uuid': '0f206604-3fa3-4b91-bafe-ea0820fd2f50', 'type': 'iqn', 'connector_id': 'test-value-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/0f206604-3fa3-4b91-bafe-ea0820fd2f50', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0f206604-3fa3-4b91-bafe-ea0820fd2f50', 'rel': 'bookmark'}]}, {'uuid': '175197a4-2c6e-4d19-b284-0df600bc7b93', 'type': 'iqn', 'connector_id': 'test-value-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/175197a4-2c6e-4d19-b284-0df600bc7b93', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/175197a4-2c6e-4d19-b284-0df600bc7b93', 'rel': 'bookmark'}]}]} -GET: /v1/volume/connectors {} -GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"uuid": "2c6fa566-352c-427a-865c-70e7f9e0357d", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "self"}, {"href": "http://localhost/nodes/2c6fa566-352c-427a-865c-70e7f9e0357d/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:54.976298+00:00"} +PATCH: /v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214 [{'path': '/storage_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-aac5b6b1-f471-4034-9401-3fb0175b2580 +Openstack-Request-Id: req-c37d38ca-2c4f-44c5-a125-8dfbd9ec29a8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"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'} +{"uuid": "b750682f-5f58-40f7-ad75-06a37222d214", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214", "rel": "self"}, {"href": "http://localhost/nodes/b750682f-5f58-40f7-ad75-06a37222d214", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214/ports", "rel": "self"}, {"href": "http://localhost/nodes/b750682f-5f58-40f7-ad75-06a37222d214/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b750682f-5f58-40f7-ad75-06a37222d214/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214/volume", "rel": "self"}, {"href": "http://localhost/nodes/b750682f-5f58-40f7-ad75-06a37222d214/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b750682f-5f58-40f7-ad75-06a37222d214/states", "rel": "self"}, {"href": "http://localhost/nodes/b750682f-5f58-40f7-ad75-06a37222d214/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2021-12-04T17:53:55.823130+00:00"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': None} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-3ffc4b9c-4c61-4733-ac05-060e35e95c32 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-10fc8aac-96d9-4f82-9a76-679c1571e959 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} -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 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'}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_node.TestPost.test_create_node_default_state_enroll +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_enroll ... ok + +POST: /v1/heartbeat/a40aa7a3-bca2-40fb-af77-20843542f793 {'callback_url': 'url'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-52ff6fd8-5d1a-4130-8bfa-f3664ca87b51 +Openstack-Request-Id: req-0ac5a18a-62f3-45ac-9602-631817bb466b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} -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'}]} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node a40aa7a3-bca2-40fb-af77-20843542f793 could not be found.\", \"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-57b5901f-8433-4015-bfa3-b8d0106fd145 +Openstack-Request-Id: req-df56e9c5-7915-49da-a51c-7955da693309 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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}"} +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': '89c89f96-e809-4dd6-9285-9b3eda6d9cdd', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/89c89f96-e809-4dd6-9285-9b3eda6d9cdd', 'rel': 'self'}, {'href': 'http://localhost/nodes/89c89f96-e809-4dd6-9285-9b3eda6d9cdd', '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}} +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 204 No Content +Openstack-Request-Id: req-449081ce-48fd-494d-a81c-1b3f546fe02a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/boot_index' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] -GOT:Response: 200 OK + +GET: /v1/volume/connectors?detail=True&limit=3 {} +GOT:{'connectors': [{'uuid': '1d967c08-588f-4d04-b1a0-5c1658c5112f', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1d967c08-588f-4d04-b1a0-5c1658c5112f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1d967c08-588f-4d04-b1a0-5c1658c5112f', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:04.498035+00:00', 'updated_at': None}, {'uuid': '6769b395-fea4-44d7-afc3-cf825401b6f1', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6769b395-fea4-44d7-afc3-cf825401b6f1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6769b395-fea4-44d7-afc3-cf825401b6f1', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:04.500103+00:00', 'updated_at': None}, {'uuid': 'ef8c9b3a-ba75-45cb-8872-89b8ee188358', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/ef8c9b3a-ba75-45cb-8872-89b8ee188358', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ef8c9b3a-ba75-45cb-8872-89b8ee188358', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:04.501760+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=ef8c9b3a-ba75-45cb-8872-89b8ee188358'} +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-3729a31c-73da-4ec9-a457-5c7a088b5639 +Openstack-Request-Id: req-bae1d33f-8f0c-49c7-83b2-ec1013a54194 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:12.818984+00:00", "updated_at": "2023-01-07T00:10:12.823014+00:00"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"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-c889b345-0dc8-47ab-9f79-a7435c7e453a +Openstack-Request-Id: req-c77f6aae-d66a-4320-bdb8-2010430ad1c8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:12.818984+00:00", "updated_at": "2023-01-07T00:10:12.823014+00:00"} -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 +{"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': '/node_id', 'value': '1', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c77bb569-0fe7-41cf-98d2-942be15aae26 +Openstack-Request-Id: req-9e16b63d-cc9c-42d6-87ec-040eb2df66f1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} +GET: /v1/volume/targets?detail=True&node=test-node {} +GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:05.041426+00:00', 'updated_at': None}]} GET: /v1/ {} -GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], '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'}], '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'}]}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.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.common.test_context.RequestContextTestCase.test_to_policy_values -ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values ... 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.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer ... 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.HardwareTypeLoadTestCase.test_invalid_rescue_interface -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_true -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_true ... 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_swift_temp_url_cache_disabled -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled ... ok -ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found -ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found ... ok -ironic.tests.unit.common.test_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_image_service.HttpImageServiceTestCase.test_download_success -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href ... 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.common.test_images.FsImageTestCase.test__mount_deploy_iso -ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service ... ok +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-17cc09d3-c9de-4336-9a96-3e1eab1b635a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "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"}]} +GET: /v1.json {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-ff93e41e-aebb-4048-979e-2a5a7bfec119 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "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"}]} +GET: /v1.xml {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "}ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions +ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions ... ok +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ... ok +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ... 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.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_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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches ... ok +ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary +ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces_non_default ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable +ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable ... 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.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.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_images.FsImageTestCase.test_create_isolinux_image_for_bios +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port ... ok -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron ... ok -ironic.tests.unit.common.test_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_policy.PolicyInCodeTestCaseNegative.test_node_create -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info ... ok -ironic.tests.unit.common.test_pxe_utils.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.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_with_trailing_slash -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_with_trailing_slash ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type ... ok -ironic.tests.unit.common.test_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.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.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_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different ... ok +ironic.tests.unit.common.test_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.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_ipxe ... ok +ironic.tests.unit.common.test_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.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects +ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base ... ok ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_create_container_fails ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha512 -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha512 ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_no_enabled_interfaces -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_no_enabled_interfaces ... 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.common.test_utils.BareMetalUtilsTestCase.test_create_link +ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ... ok +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive ... ok +ironic.tests.unit.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.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout ... ok ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat ... ok +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_error_old ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok ... ok -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_succeeded ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ... ok -ironic.tests.unit.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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success ... ok -ironic.tests.unit.drivers.modules.test_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.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.conductor.test_manager.MiscTestCase.test_iter_nodes -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ... ok -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_not_found ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_disabled ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_no_skip +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_no_skip ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step ... ok +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed +ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_ironic_error ... 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.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ... ok +ironic.tests.unit.conductor.test_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.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_no_management ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state ... ok +ironic.tests.unit.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.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.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.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.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_deleting_state ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate ... ok +ironic.tests.unit.conductor.test_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.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.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.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets -ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ... ok -ironic.tests.unit.conductor.test_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_node_vendor_passthru_methods -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ... ok -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify ... ok -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_empty_instance_traits ... ok -ironic.tests.unit.conductor.test_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.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.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ... 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.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception ... ok +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy ... ok +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled ... ok +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg ... ok +ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted +ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_1 ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_1 ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 ... ok ironic.tests.unit.db.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.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.db.test_api.UpgradingTestCase.test_check_versions -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... 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.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags ... 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_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.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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name ... ok -ironic.tests.unit.db.test_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_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_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_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid ... ok -ironic.tests.unit.db.test_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.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_extra -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_extra ... 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.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_noglance -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_noglance ... ok -ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs -ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs ... ok -ironic.tests.unit.drivers.modules.drac.test_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__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.DracManagementTestCase.test_get_sensors_data -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_sensors_data ... 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__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.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size ... ok +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok +ironic.tests.unit.db.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.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups ... ok +ironic.tests.unit.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.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.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.db.test_nodes.DbNodeTestCase.test_get_node_list +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ... 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.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.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.db.test_nodes.DbNodeTestCase.test_update_node_with_tags +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ... 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_update_portgroup_duplicated_address +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_duplicated_address ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id_that_does_not_exist ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_extra +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_extra ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_soft_poweroff_retry +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_soft_poweroff_retry ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints ... ok +ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleTestCase.test_cimc_handle +ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleTestCase.test_cimc_handle ... ok +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device ... ok +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device_fail +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_ok ... 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.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_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host_and_drac_address +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host_and_drac_address ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_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.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.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.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level ... ok -ironic.tests.unit.drivers.modules.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.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_unknown_error -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_unknown_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_without_boot_iso -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_without_boot_iso ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_deleting ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_get_ilo_object_no_cafile -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_no_cafile ... 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.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state ... 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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_empty_gpu_ids_fpga_ids ... ok -ironic.tests.unit.drivers.modules.irmc.test_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.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_port_like_object_ignores_standalone_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_extra_vif_port_id -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_extra_vif_port_id ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_prepare_manager_url -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_prepare_manager_url ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_deallocate_server_hardware_from_ironic -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_deallocate_server_hardware_from_ironic ... 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.oneview.test_management.OneViewManagementDriverTestCase.test_validate_for_node_not_in_use_by_ironic -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_for_node_not_in_use_by_ironic ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device ... 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.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption ... ok -ironic.tests.unit.drivers.modules.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_detach_volumes_failure_raises_exception -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.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.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username ... ok +ironic.tests.unit.drivers.modules.ilo.test_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_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_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.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok ... ok ironic.tests.unit.drivers.modules.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.TestAgentDeploy.test_continue_deploy_image_source_is_url -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_image_source_is_url ... 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_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete ... 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_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_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.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra -ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_raises -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_raises ... 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_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_image_cache.CleanupImageCacheTestCase.test_one_clean_up -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_IPMI_version_1_5 ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__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_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_netboot_specified -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_netboot_specified ... ok -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_partition -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_partition ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects ... ok -DELETE: /v1/portgroups/pg.1.json -GOT:Response: 204 No Content -Openstack-Request-Id: req-1e9d1569-da7e-4a09-9898-1d7c954379d5 +GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-c0855e69-c965-4ae1-bc54-e921144c56c0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 - -GET: /v1/portgroups {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.14 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/fc12eac0-8c80-423b-acf2-d8abf0745a0b [{'path': '/extra/vif_port_id', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0f640fe5-1adc-4602-bfc0-9a7e7cf65908 +Openstack-Request-Id: req-df8cd2e4-191b-43c2-b6d7-1024425f184d X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/3ae70ec8-d67a-43fb-b326-ea296a47189a/ports {} -GOT:{'ports': [{'uuid': '84ca0281-2a3c-42a0-8fb5-4f4b30760cbc', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/84ca0281-2a3c-42a0-8fb5-4f4b30760cbc', 'rel': 'self'}, {'href': 'http://localhost/ports/84ca0281-2a3c-42a0-8fb5-4f4b30760cbc', 'rel': 'bookmark'}]}, {'uuid': '7645c122-964d-43a2-b2a8-5ac376693d20', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/7645c122-964d-43a2-b2a8-5ac376693d20', 'rel': 'self'}, {'href': 'http://localhost/ports/7645c122-964d-43a2-b2a8-5ac376693d20', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/3ae70ec8-d67a-43fb-b326-ea296a47189a/ports/detail {} -GOT:{'ports': [{'uuid': '84ca0281-2a3c-42a0-8fb5-4f4b30760cbc', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '3ae70ec8-d67a-43fb-b326-ea296a47189a', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/84ca0281-2a3c-42a0-8fb5-4f4b30760cbc', 'rel': 'self'}, {'href': 'http://localhost/ports/84ca0281-2a3c-42a0-8fb5-4f4b30760cbc', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.941187+00:00', 'updated_at': None}, {'uuid': '7645c122-964d-43a2-b2a8-5ac376693d20', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '3ae70ec8-d67a-43fb-b326-ea296a47189a', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/7645c122-964d-43a2-b2a8-5ac376693d20', 'rel': 'self'}, {'href': 'http://localhost/ports/7645c122-964d-43a2-b2a8-5ac376693d20', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.943409+00:00', 'updated_at': None}]} -GET: /v1/portgroups/3ae70ec8-d67a-43fb-b326-ea296a47189a/ports?limit=1 {} -GOT:{'ports': [{'uuid': '84ca0281-2a3c-42a0-8fb5-4f4b30760cbc', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/84ca0281-2a3c-42a0-8fb5-4f4b30760cbc', 'rel': 'self'}, {'href': 'http://localhost/ports/84ca0281-2a3c-42a0-8fb5-4f4b30760cbc', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=1&marker=84ca0281-2a3c-42a0-8fb5-4f4b30760cbc'} -GET: /v1/portgroups/3ae70ec8-d67a-43fb-b326-ea296a47189a/ports/20d98a12-9210-4e6c-9567-dffaa9012c52 {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.28 +{"uuid": "fc12eac0-8c80-423b-acf2-d8abf0745a0b", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/fc12eac0-8c80-423b-acf2-d8abf0745a0b", "rel": "self"}, {"href": "http://localhost/ports/fc12eac0-8c80-423b-acf2-d8abf0745a0b", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.721101+00:00", "updated_at": "2021-12-04T17:54:01.802472+00:00"} +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 -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: /v1/portgroups/3ae70ec8-d67a-43fb-b326-ea296a47189a/ports/e5ae04d5-4550-45ce-b7fa-3fdc1116234c {} -GOT:Response: 403 Forbidden +Openstack-Request-Id: req-a8132e4f-0a61-4734-b5e6-475c21ac2675 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.919069+00:00", "updated_at": "2021-12-04T17:54:01.997530+00:00"} +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, '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-33e66765-195c-4426-adfa-a34cc43cc40e +Openstack-Request-Id: req-4118a27e-1179-447c-866f-695f3bc33544 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} -GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"debuginfo\": null}"} +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, '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-cc3d6786-a4f8-4df7-a670-186246cad9a1 +Openstack-Request-Id: req-33b0e791-9954-4f90-9446-9879f927801c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/pg.1 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address or OpenFlow datapath ID but received zz:zz:zz:zz:zz:zz.\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', '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, '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-184e0b79-9a15-4200-bda9-62ca4535d063 +Openstack-Request-Id: req-68efc627-0b77-4ab1-b2c9-e3fc9b3a0c3c +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': True, 'physical_network': None, '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-61fa98cf-4aa0-4537-912c-b4660f2e2469 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"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 +{"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 port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' was set to True.\", \"debuginfo\": null}"} +DELETE: /v1/portgroups/blah +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3964a795-25b0-4e69-bdef-1f5813817356 +Openstack-Request-Id: req-76f222d8-e288-4a98-a706-0c8732667d9e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "802.3ad", "properties": {"bond_param": "100"}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.624949+00:00", "updated_at": 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 +{"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-588730d0-5f00-4cf0-b4bc-9400ce6b26a7 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 + +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-7420e658-b389-427b-aa70-07b2413f01ef +Openstack-Request-Id: req-408f1169-bc7d-4a2b-8868-6b818fbf1e15 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.26 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "802.3ad", "properties": {"bond_prop": 123}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.911723+00:00", "updated_at": null} -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 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": false, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.867845+00:00", "updated_at": null} +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 -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-e76a5cc6-9ea8-435e-b8d0-d8ee77eb29f1 +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +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-7c991240-703e-41f5-bd78-168c9d019c35 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": null, "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:12.106965+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute portgroup. Value: '{'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'}'. Value not a valid dict: info\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_ok ... 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_portgroup.TestPost.test_create_portgroup_no_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address ... ok -ironic.tests.unit.api.controllers.v1.test_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_types.TestJsonPatchType.test_cannot_add_with_no_value -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_add_with_no_value ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr -ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_rescue_interface -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_rescue_interface ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs_fail ... 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.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_mandatory_key +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_mandatory_key ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name +ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_invalid_uuid_or_name +ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_invalid_uuid_or_name ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_deploy +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_deploy ... 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.controllers.v1.test_types.TestVifType.test_vif_type_bad_id +ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_bad_id ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_storage_interface +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ... ok -ironic.tests.unit.api.controllers.v1.test_utils.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_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_volume_connector.TestListVolumeConnectors.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.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_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte ... ok +ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume +ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_all_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ... ok +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso ... ok +ironic.tests.unit.drivers.modules.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_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.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_standalone_portgroup ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port_extra +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port_extra ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports ... ok +ironic.tests.unit.drivers.modules.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.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.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup ... ok +ironic.tests.unit.drivers.modules.network.test_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.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_instance_uuid +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_instance_uuid ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_local +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_local ... 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.oneview.test_common.OneViewCommonTestCase.test__validate_node_server_hardware_type +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_server_hardware_type ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_spt_enclosure_group_invalid +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_spt_enclosure_group_invalid ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sh +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sh ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_cleaning +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_cleaning ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_raise_exception +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_raise_exception ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_false +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_false ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_on +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_on ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_soft_reboot +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_soft_reboot ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ... ok +ironic.tests.unit.drivers.modules.test_agent.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_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ... ok -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-73d6b03d-8f36-48d1-ad4f-d3a281352809 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-72a75daf-fb79-49d9-8958-2440c92fd210 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:06.234193+00:00"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'resource_class': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.46 +{"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": null, "dict": {"cat": "meow"}}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.168107+00:00", "updated_at": null} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'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'}}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.168107+00:00', 'updated_at': None} +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', '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-def9c7fd-f469-4940-9fc6-d070b46b6dd8 +Openstack-Request-Id: req-1ad137a1-47eb-4615-b3a9-120f3dacac8c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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'} +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -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'} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} +GET: /v1/portgroups?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cec43ac6-86df-4f39-9db8-27efed183670 +Openstack-Request-Id: req-41fdde74-f7c8-4f2c-a34a-34e0382c7719 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.42 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} +GET: /v1/portgroups {} +GOT:{'portgroups': []} +GET: /v1/portgroups?address=aa:bb:cc:dd:ee:ff {} +GOT:{'portgroups': []} +GET: /v1/portgroups/8b0e3f63-3114-4cde-9785-c1aa1a8ff75b/ports {} +GOT:{'ports': [{'uuid': '1314d61a-7cf2-4830-b170-fc1492de817d', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'self'}, {'href': 'http://localhost/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'bookmark'}]}, {'uuid': '8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'rel': 'self'}, {'href': 'http://localhost/ports/8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/8b0e3f63-3114-4cde-9785-c1aa1a8ff75b/ports/detail {} +GOT:{'ports': [{'uuid': '1314d61a-7cf2-4830-b170-fc1492de817d', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '8b0e3f63-3114-4cde-9785-c1aa1a8ff75b', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'self'}, {'href': 'http://localhost/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.842222+00:00', 'updated_at': None}, {'uuid': '8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '8b0e3f63-3114-4cde-9785-c1aa1a8ff75b', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'rel': 'self'}, {'href': 'http://localhost/ports/8d5146ca-c202-44d9-9cc4-775cc3dcdec5', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.846239+00:00', 'updated_at': None}]} +GET: /v1/portgroups/8b0e3f63-3114-4cde-9785-c1aa1a8ff75b/ports?limit=1 {} +GOT:{'ports': [{'uuid': '1314d61a-7cf2-4830-b170-fc1492de817d', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'self'}, {'href': 'http://localhost/ports/1314d61a-7cf2-4830-b170-fc1492de817d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=1&marker=1314d61a-7cf2-4830-b170-fc1492de817d'} +GET: /v1/portgroups/8b0e3f63-3114-4cde-9785-c1aa1a8ff75b/ports/2c92257f-cea4-4b60-a13f-9ac905dd0cb5 {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/portgroups/8b0e3f63-3114-4cde-9785-c1aa1a8ff75b/ports/4a88f252-634c-4919-a3a1-86e25dbb8a2a {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dfea33e3-1e47-4dcd-a3a2-76e3c57f4141 +Openstack-Request-Id: req-010b7c90-ddad-4f2c-8b97-9975667fbc33 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"rebuild\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +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-cdb036d8-8f26-4697-b005-5342045960a7 +Openstack-Request-Id: req-08ea5825-3a18-41fb-9de6-b99978e34de5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'manageable'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.176059+00:00", "updated_at": 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-c47919ae-a824-4583-8465-f061c693b57d +Openstack-Request-Id: req-350e0bba-0fe8-4b93-9f70-bf8694c78712 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/power {'target': 'power off'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "802.3ad", "properties": {"bond_param": "100"}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.478510+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_same +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_same ... 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_portgroup.TestPost.test_node_uuid_to_node_id_mapping +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_node_uuid_to_node_id_mapping ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inject_nmi +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inject_nmi ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive_fails +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive_fails ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ... ok +ironic.tests.unit.api.controllers.v1.test_utils.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_utils.TestVendorPassthru.test_driver_vendor_passthru_async +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_many ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_no_manage_agent_boot +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_no_manage_agent_boot ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_with_automated_clean_disabled +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_with_automated_clean_disabled ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance ... ok + +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-490de0ce-7b9a-42a9-a2ec-f3a0ca727293 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-cee80e5f-7ca9-46ca-989c-4ae456045c53 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"power off\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power off'} +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.663058+00:00", "updated_at": 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, '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-3f4edb2c-d01c-423c-a8e9-361ff9b7ec69 +Openstack-Request-Id: req-9fd26840-48ff-44e9-80ea-107d0e934335 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/provision {'target': 'rescue'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute internal_info. Value: '{'a': 'b'}'. Cannot set read only field.\", \"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/6eb02b44-18a3-4659-8c0b-8d2802581ae4.json {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:05.059084+00:00', 'updated_at': None} +GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-30f447ac-0329-4821-b527-69592db8d9d4 +Openstack-Request-Id: req-18a78ce0-5170-4e3d-9c8d-b163f8e53e7e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'deleted', 'configdrive': 'foo'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} +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-f04156bf-002d-4e02-a722-4bad7c35ff42 +Openstack-Request-Id: req-29014360-fe4d-4aac-9cb4-845792c24cbd X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'rebuild'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-a7e5b7cc-d332-406f-9dbf-6e38a59e2a4b +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.372081+00:00", "updated_at": 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-2629fed4-bbb8-4700-8c14-1118167503d8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_configdrive ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_rejects_bad_trait ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait ... 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.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_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_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_sort_key -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPortObject.test_port_init -ironic.tests.unit.api.controllers.v1.test_port.TestPortObject.test_port_init ... 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_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_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false ... ok -/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 - "instead of warning in version 3.0" % (value,)) -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral ... 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.PXEBootTestCase.test_validate_fail_glance_image_doesnt_exists -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_image_doesnt_exists ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_without_is_whole_disk_image -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_without_is_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_reset ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ... ok - -PATCH: /v1/nodes/bb35521a-244d-4af6-bf14-4befc7d26681 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/pg.1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1ae76336-d771-4b29-bc16-2d1838f287a3 +Openstack-Request-Id: req-9c21e4c1-0ff9-4c3b-922f-32aebbb4047c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "bb35521a-244d-4af6-bf14-4befc7d26681", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "rescue failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/bb35521a-244d-4af6-bf14-4befc7d26681", "rel": "self"}, {"href": "http://localhost/nodes/bb35521a-244d-4af6-bf14-4befc7d26681", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/bb35521a-244d-4af6-bf14-4befc7d26681/ports", "rel": "self"}, {"href": "http://localhost/nodes/bb35521a-244d-4af6-bf14-4befc7d26681/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:07.969556+00:00"} -PATCH: /v1/nodes/af55b2c9-9c38-49d3-b5e5-39645e887879 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.621617+00:00", "updated_at": null} +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-524b7fd4-aaa7-4000-b70a-c9c6e6312848 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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-30ad2baa-b34f-437d-8d7d-396aa6ce502c +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-3396b8e4-9113-4851-aec9-805e80310529 +Openstack-Request-Id: req-c2c389d3-7109-414e-9525-4b3182bfe505 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.852493+00:00", "updated_at": "2021-12-04T17:54:05.923284+00:00"}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_deprecated +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_add_extra_vif_port_id_deprecated ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id_deprecated +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id_deprecated ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses ... ok +ironic.tests.unit.api.controllers.v1.test_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_root.TestV1Routing.test_route_checks_version +ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_route_checks_version ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_advanced_net_fields +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_advanced_net_fields ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_internal_info +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_internal_info ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_no_pin +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_no_pin ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_rescue_interface +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_rescue_interface ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait ... 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_utils.TestVendorPassthru.test_vendor_passthru_sync +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_sync ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_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_volume_connector.TestListVolumeConnectors.test_one +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_one ... ok + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:55.991966+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'reservation': 'fake'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-ff2640ea-03b7-4db9-8b0b-c343b939e69b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "af55b2c9-9c38-49d3-b5e5-39645e887879", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "unrescue failed", "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": "available", "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/af55b2c9-9c38-49d3-b5e5-39645e887879", "rel": "self"}, {"href": "http://localhost/nodes/af55b2c9-9c38-49d3-b5e5-39645e887879", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/af55b2c9-9c38-49d3-b5e5-39645e887879/ports", "rel": "self"}, {"href": "http://localhost/nodes/af55b2c9-9c38-49d3-b5e5-39645e887879/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2023-01-07T00:10:08.063207+00:00"} -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute reservation. Value: 'fake'. Cannot set read only field.\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7b80d0b0-211a-4f38-80c4-d4589e003156 +Openstack-Request-Id: req-a67abf6d-a35b-40ba-9060-9acb2dcf8afe X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/provision {'target': 'adopt'} +{"cat": "meow"} +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-b9e93c85-8dc8-4110-8b6c-e07777684e00 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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/management/inject_nmi {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-e20da2d2-5979-4a01-bb37-42ac3d9c3e58 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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/states/power {'target': 'power on'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-3d5a872d-121b-46f5-b3bc-184e4ed61866 +Openstack-Request-Id: req-869a6707-aa94-4e76-848b-9fb7e843537c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.17 +X-Openstack-Ironic-Api-Version: 1.1 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-d66f9bbf-0463-4f48-8969-de52cb3357d5 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/provision {'target': 'provide'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-a6bbcb81-ed14-491c-a0fe-ba59608ac213 +Openstack-Request-Id: req-11bb739e-dba5-454a-a795-65bb9b7cc847 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.4 +X-Openstack-Ironic-Api-Version: 1.27 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} -GOT:Response: 404 Not Found +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-165a9cdf-9665-428f-8745-7e5cc5f07ba5 +Openstack-Request-Id: req-0dad669a-208a-4764-b5f1-36a706d9da85 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/node-39/traits/CUSTOM_3 {} +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': 'deleted', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cf9a3a19-130c-4970-8d3e-a730ebf968e8 +Openstack-Request-Id: req-cd59cf1f-398f-4574-8327-3284039d0c76 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} +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}"} +GET: /v1/ports/?limit=3 {} +GOT:{'ports': [{'uuid': '3ad885f1-e50d-49f8-bfbf-8f576b7bec1b', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/3ad885f1-e50d-49f8-bfbf-8f576b7bec1b', 'rel': 'self'}, {'href': 'http://localhost/ports/3ad885f1-e50d-49f8-bfbf-8f576b7bec1b', 'rel': 'bookmark'}]}, {'uuid': '8f107d1c-3b15-490e-b6c4-c21535b3dee8', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/8f107d1c-3b15-490e-b6c4-c21535b3dee8', 'rel': 'self'}, {'href': 'http://localhost/ports/8f107d1c-3b15-490e-b6c4-c21535b3dee8', 'rel': 'bookmark'}]}, {'uuid': 'a5fa4abe-b6bd-4e95-a4a1-13a52422afae', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/a5fa4abe-b6bd-4e95-a4a1-13a52422afae', 'rel': 'self'}, {'href': 'http://localhost/ports/a5fa4abe-b6bd-4e95-a4a1-13a52422afae', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=3&marker=a5fa4abe-b6bd-4e95-a4a1-13a52422afae'} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d40781ee-281f-42f7-88af-e47002fced3d +Openstack-Request-Id: req-45c61adb-f565-413a-9c0f-b7f8dde93313 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:Response: 406 Not Acceptable +GET: /v1/ports/detail?node=test-node {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.064967+00:00', 'updated_at': None}]} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.253576+00:00', 'updated_at': None} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.514878+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_advanced_net ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_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.TestPatch.test_add_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_extra_vif_port_id ... 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_port.TestPatch.test_replace_physical_network_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_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_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_not_allow ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports ... ok +ironic.tests.unit.api.controllers.v1.test_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_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.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 + +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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-e7fa0005-51f5-46f6-82bf-133c316d87be +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-ec9ff690-f4c9-420f-a9a3-ef35f50dd355 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.965200+00:00", "updated_at": null} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.965200+00:00', 'updated_at': None} +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, '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-bc931c92-5255-4c5f-9bbb-c4e3c51431bc +Openstack-Request-Id: req-df0280b2-0f6a-4b12-be40-9b5bd250e197 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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,physical_network {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'}, 'pxe_enabled': True, 'physical_network': None, '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-88c04291-8239-4afe-8742-1c4e3cd0554b +Openstack-Request-Id: req-71c51c99-d8c0-436c-812b-2703a60716cb X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/2e3d25b0-7c1a-43d2-9960-aca79fb81f7d {} -GOT:{'uuid': '2e3d25b0-7c1a-43d2-9960-aca79fb81f7d', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/2e3d25b0-7c1a-43d2-9960-aca79fb81f7d', 'rel': 'self'}, {'href': 'http://foo/ports/2e3d25b0-7c1a-43d2-9960-aca79fb81f7d', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.096333+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_port.TestPatch.test_replace_extra_vif_port_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_extra_vif_port_id ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_set_pxe_enabled_false_old_api ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_port.TestPost.test_create_port_invalid_addr_format -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format ... ok - -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15', 'switch_info': 'value3'}, 'pxe_enabled': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"{'switch_foo'} are invalid keys\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '5679af03-12a4-453b-a870-e243d7476a1a'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, '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-9fc2be1a-d624-46f2-8ccf-679faaeeeb02 +Openstack-Request-Id: req-5df0998b-e35c-43ac-9850-31b942d343f7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15", "switch_info": "value3"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.547695+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'internal_info': {'a': 'b'}} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "5679af03-12a4-453b-a870-e243d7476a1a"}, "internal_info": {"tenant_vif_port_id": "5679af03-12a4-453b-a870-e243d7476a1a"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.675971+00:00", "updated_at": null} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/detail {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-122d9222-6ace-45ec-8e82-ef9de17a0ca0 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.json', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.968673+00:00', 'updated_at': None} +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-3464ba8a-32b2-4f4b-9799-7d7fa9c1c4a6 +Openstack-Request-Id: req-0f7175a9-fc7a-49d9-bb65-2036e1ccf30f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute internal_info. Value: '{'a': 'b'}'. Cannot set read only field.\", \"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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9ee27608-ab6e-4086-8f58-d66cf0c0b944 +Openstack-Request-Id: req-133b57c7-0d97-46b9-891b-f64cde99563e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 204 No Content -Openstack-Request-Id: req-d49f1c8c-2b17-4c35-8003-63c4fd846244 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.247820+00:00", "updated_at": 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-05c21608-270b-416c-8763-e272fe236979 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.414350+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_replace_extra_vif_port_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_replace_extra_vif_port_id ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_no_extra +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_no_extra ... 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_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_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_types.TestJsonPatchType.test_cannot_update_internal_attr +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_path ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_without_optional_key +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_without_optional_key ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_node_rebuild_with_configdrive +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_node_rebuild_with_configdrive ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs_fail ... 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_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_volume_connector.TestDelete.test_delete_volume_connector_node_locked +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one ... 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 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} -GOT:Response: 404 Not Found +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} +GOT:Response: 204 No Content +Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 +Openstack-Request-Id: req-bf02b437-d4ac-4e12-9ca5-13058e089812 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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-b78861ab-878d-4ecd-a215-b19005f44d04 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.37 + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} +GOT:{'traits': ['CUSTOM_1', 'CUSTOM_2']} +PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} +GOT:Response: 400 Bad Request Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/non-existent', 'op': 'remove'}] +Openstack-Request-Id: req-4bc5d26b-089f-4bbf-8cc4-86bf28a2eac1 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} +GET: /v1/ports/detail {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': False, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, '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'}], 'created_at': '2021-12-04T17:54:00.861114+00:00', 'updated_at': None}]} +GET: /v1/ports/detail?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'ports': [], 'next': {}, 'created_at': {}, 'updated_at': {}} +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', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:01.790515+00:00', 'updated_at': None} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:01.790515+00:00', 'updated_at': None} +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-8c83bf44-428a-47c2-ae19-9bd70fea3d22 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.003700+00:00", "updated_at": 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-b4de3d94-9ec6-4d71-946f-31bec1dbae35 +Openstack-Request-Id: req-405df746-483b-45f6-9695-93b8bac1b078 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} -GOT:Response: 400 Bad Request +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-5736d57c-d46b-46ae-8e01-125978437c29 +Openstack-Request-Id: req-6fbf6b07-c877-427b-9074-879913db4e80 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -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': 'fb20b471-731e-4ab7-89a0-73a673f76493', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/fb20b471-731e-4ab7-89a0-73a673f76493', 'rel': 'self'}, {'href': 'http://localhost/nodes/fb20b471-731e-4ab7-89a0-73a673f76493', '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}} -GET: /v1/volume/connectors?detail=True&node=test-node {} -GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:13.099528+00:00', 'updated_at': None}]} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.34 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.365669+00:00", "updated_at": "2021-12-04T17:54:02.447974+00:00"} +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-a71ca3f2-07b9-4f2c-9802-f067079ae98b +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.19 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "pxe_enabled": true, "local_link_connection": {"switch_id": "aa:bb:cc:dd:ee:ff", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.502618+00:00", "updated_at": "2021-12-04T17:54:02.543715+00:00"} +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-7a91ebd5-ea4c-472e-bb46-007a9f109fa5 +Openstack-Request-Id: req-0024ce67-02d0-4cee-bbc6-52b6d3a01372 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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}"} +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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_mandatory ... ok +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_portgroup.TestListPortgroups.test_get_all_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_extra_vif_port_id ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr +ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_valid_mac_addr ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name +ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_optional_key +ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_optional_key ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inspect_abort +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inspect_abort ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_resource_class +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_resource_class ... 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.TestNodeIdent.test_is_valid_node_name +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ... ok + +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-9fcc71ce-85e1-4af7-9cab-4205ffc96f11 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.28 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.711265+00:00", "updated_at": "2021-12-04T17:54:03.827143+00:00"} +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-4fccc528-0e94-4ea3-80da-7d47a23ce5b7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type None and connector ID test-connector-id-123 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': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 500 Internal Server Error +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 52-54-00-cf-2d-31.\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-3d13dbfb-8b8c-4524-9df3-46cf9843565b +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-f5b2e80a-8e9d-44ba-b46b-67ec7a97688b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"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': 123} -GOT:Response: 400 Bad Request +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.168872+00:00", "updated_at": null} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=1d11851e-5728-4fe9-a920-2f272f2bda82 {} +GOT:{'node': {'uuid': '1d11851e-5728-4fe9-a920-2f272f2bda82', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/1d11851e-5728-4fe9-a920-2f272f2bda82', 'rel': 'self'}, {'href': 'http://localhost/nodes/1d11851e-5728-4fe9-a920-2f272f2bda82', '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}} +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-dc37ec04-fa71-46be-a2ba-a3700244d824 +Openstack-Request-Id: req-5fd7abac-a213-445e-833e-cd669dc52670 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"debuginfo\": null}"} -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/volume/connectors?detail=False {} +GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': '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?fields=uuid,extra {} +GOT:{'connectors': [{'uuid': 'f08bebb9-5310-4fd7-bb32-8ee420bc9d0c', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/f08bebb9-5310-4fd7-bb32-8ee420bc9d0c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f08bebb9-5310-4fd7-bb32-8ee420bc9d0c', 'rel': 'bookmark'}]}, {'uuid': '1fde6ace-f436-4337-8147-301dabb8c060', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/1fde6ace-f436-4337-8147-301dabb8c060', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1fde6ace-f436-4337-8147-301dabb8c060', 'rel': 'bookmark'}]}, {'uuid': 'cb766e96-a8aa-40a3-9335-6f8ec72a98ff', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/cb766e96-a8aa-40a3-9335-6f8ec72a98ff', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/cb766e96-a8aa-40a3-9335-6f8ec72a98ff', 'rel': 'bookmark'}]}]} +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 {} +GOT:{'connectors': [{'uuid': '4719d574-ac1c-45af-9c95-4c4f526c85fa', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/4719d574-ac1c-45af-9c95-4c4f526c85fa', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4719d574-ac1c-45af-9c95-4c4f526c85fa', 'rel': 'bookmark'}]}, {'uuid': '7b6d0f16-c2b1-4bca-954f-8032ff4a883b', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/7b6d0f16-c2b1-4bca-954f-8032ff4a883b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7b6d0f16-c2b1-4bca-954f-8032ff4a883b', 'rel': 'bookmark'}]}, {'uuid': '268b2e3c-ce89-4650-8fd7-8462de3e8656', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/268b2e3c-ce89-4650-8fd7-8462de3e8656', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/268b2e3c-ce89-4650-8fd7-8462de3e8656', 'rel': 'bookmark'}]}, {'uuid': '99a9925d-7cc8-4e39-9b93-8cbf864b0378', 'type': 'iqn', 'connector_id': 'test-connector_id-3', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/99a9925d-7cc8-4e39-9b93-8cbf864b0378', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/99a9925d-7cc8-4e39-9b93-8cbf864b0378', 'rel': 'bookmark'}]}, {'uuid': '603ebe60-1d7b-4dd5-a9e3-6332d89a19a6', 'type': 'iqn', 'connector_id': 'test-connector_id-4', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/603ebe60-1d7b-4dd5-a9e3-6332d89a19a6', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/603ebe60-1d7b-4dd5-a9e3-6332d89a19a6', 'rel': 'bookmark'}]}]} +GET: /v1/volume/connectors?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-574571ba-bb52-4c0b-baf4-9582f887e7ee +Openstack-Request-Id: req-9d343ff7-1fd9-413c-8f52-62cb9a781549 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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}"} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {}ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_against_single ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular ... ok -ironic.tests.unit.api.test_acl.TestACL.test_non_admin -ironic.tests.unit.api.test_acl.TestACL.test_non_admin ... 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.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_bad_default ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface ... 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.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.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs -ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.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_volume_target.TestPost.test_create_volume_target_generate_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.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.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks ... ok +ironic.tests.unit.api.test_root.TestRoot.test_get_root +ironic.tests.unit.api.test_root.TestRoot.test_get_root ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict +ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict ... 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.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.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint +ironic.tests.unit.common.test_driver_factory.NewFactoryTestCase.test_new_driver_factory_unknown_entrypoint ... ok +ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported +ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported ... ok +ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported +ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported ... ok +ironic.tests.unit.common.test_exception.TestIronicException.test___init__ +ironic.tests.unit.common.test_exception.TestIronicException.test___init__ ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum ... ok +ironic.tests.unit.drivers.modules.test_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.common.test_exception.TestIronicException.test___init___invalid_kwarg +ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg ... 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_glance_service.TestGlanceImageService.test_download_with_retries +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_config ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image ... ok +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls ... ok +ironic.tests.unit.common.test_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.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.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_http_image_service ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fails_no_grub_cfg ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fails_no_grub_cfg ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... ok -ironic.tests.unit.common.test_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.common.test_images.IronicImagesTestCase.test_converted_size -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node -ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_extra +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_portgroup_extra ... ok +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment_no_physnet -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment_no_physnet ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_port ... 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.common.test_neutron.TestUnbindPort.test_unbind_neutron_port -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs ... ok +ironic.tests.unit.common.test_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.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_pxe_config_existing_dirs +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_elilo_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_elilo_config ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_without_trailing_slash +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_without_trailing_slash ... 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.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_raid_level +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id +ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta +ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta ... ok +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ... ok +ironic.tests.unit.common.test_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.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.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_failure +ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_failure ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ... ok +ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails +ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails ... ok +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_power_on ... ok +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_async +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_async ... ok +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_steps_exception +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_steps_exception ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_invalid_state ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception_old +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception_old ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors ... ok +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_manage ... ok +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_no_worker_avail ... 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_exit_with_other_exception +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded_notify ... ok +ironic.tests.unit.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.ManagerTestProperties.test_driver_properties_fail +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail ... 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.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state_old +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state_old ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance ... 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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found ... ok + +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-3fb35299-2f57-4ac2-8e62-876136cf425c +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "foo", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.491397+00:00", "updated_at": null} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': 'aa:aa:aa:11:22:33', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'foo', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.491397+00:00', 'updated_at': None} +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-4e929acb-d7d8-4664-a35f-ba9dd36fe325 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": null, "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.744590+00:00", "updated_at": null} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': None, 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.744590+00:00', 'updated_at': None} +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/connectors?detail=True&node=test-node {} +GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:04.842577+00:00', 'updated_at': None}]} +GET: /v1/volume/connectors?node=test-node {} +GOT:{'connectors': [{'uuid': '60349f5c-0c59-4c15-b712-6e011c64503c', 'type': 'iqn', 'connector_id': 'test-value-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/60349f5c-0c59-4c15-b712-6e011c64503c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/60349f5c-0c59-4c15-b712-6e011c64503c', 'rel': 'bookmark'}]}, {'uuid': 'ee88669e-f288-4493-8a65-f0c3ca9066d4', 'type': 'iqn', 'connector_id': 'test-value-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/ee88669e-f288-4493-8a65-f0c3ca9066d4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ee88669e-f288-4493-8a65-f0c3ca9066d4', 'rel': 'bookmark'}]}, {'uuid': '03405acc-77cb-45bc-96ce-4e5944b385d3', 'type': 'iqn', 'connector_id': 'test-value-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/03405acc-77cb-45bc-96ce-4e5944b385d3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/03405acc-77cb-45bc-96ce-4e5944b385d3', 'rel': 'bookmark'}]}]} +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-d9d04d7e-ec03-4317-9295-24fb8ba15f5d +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"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-b6b584a5-a789-47f3-b777-8368f1da4540 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_node_uuid_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_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_detail +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestVolumeTargetObject.test_volume_target_init +ironic.tests.unit.api.controllers.v1.test_volume_target.TestVolumeTargetObject.test_volume_target_init ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context ... 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.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_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_swift_temp_url_account_detected +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_driver_not_found ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_code +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_code ... ok +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_for_hrefs +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_for_hrefs ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_already_raw_format ... ok +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment_no_physnet +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment_no_physnet ... ok +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context ... ok +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_out_range_auth_strategy +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_out_range_auth_strategy ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_no_sg_from_neutron ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password ... 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.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_set_dir_permission ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_multiple_root_volumes ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_multiple_is_root_volume ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier ... 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.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_wsgi_service.TestWSGIService.test_workers_set_zero_setting -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting ... ok -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_db_conn ... ok -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error ... ok -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_elilo +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_elilo ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_uefi +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_uefi ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir_ipxe +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir_ipxe ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_disk_type ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... ok +ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ +ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ... ok +ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST +ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST ... ok +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_free_space_ok ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... ok +ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_success +ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_success ... 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.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.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_unsupported_state ... ok -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_take_over_failure ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_names ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_start_fail ... ok +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled ... ok +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone ... ok +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail ... ok ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_bad_step_return_value ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_power_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_no_skip -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_no_skip ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_last_step ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_maintenance ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_invalid_state ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ... ok -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2 +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2 ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state ... ok +ironic.tests.unit.conductor.test_manager.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.RaidTestCases.test_get_raid_logical_disk_properties +ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties ... ok ironic.tests.unit.conductor.test_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.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked ... ok -ironic.tests.unit.conductor.test_manager.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.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.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.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_not_found ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async ... 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.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification -ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_maintenance ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ... 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.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.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_manageable_state ... ok +ironic.tests.unit.conductor.test_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.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook ... 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.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_duplicate ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach ... ok +ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap +ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap ... 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.conductor.test_rpcapi.RPCAPITestCase.test_create_port +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ... 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.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.ProvisionNotifyTestCase.test_notify_stable_to_stable +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_portgroups_exception ... ok -ironic.tests.unit.conductor.test_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_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_no_cleanup ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown ... ok -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps ... ok -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed ... ok -ironic.tests.unit.conductor.test_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_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... skipped u"Backend 'postgresql' is unavailable: Could not connect" -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.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ... ok -ironic.tests.unit.db.test_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.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ... 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_traits.DbNodeTraitTestCase.test_delete_node_trait -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port -ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_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.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.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req ... ok -ironic.tests.unit.drivers.modules.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.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_partitioning_info_all_gpt ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_fail -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_fail ... 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.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.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.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_no_boot_iso -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_no_boot_iso ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_non_glance_partition_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_non_glance_partition_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_cleaning ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image_local ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_for_webserver ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_false -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_false ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_swift_based_me ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_management.IloManagementTestCase.test__execute_ilo_clean_step_ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_bios_to_default ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_timeout -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_timeout ... 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_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.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_object -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_object ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_rescuing ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra ... 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_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.oneview.test_common.OneViewCommonTestCase.test__validate_node_port_mac_server_hardware_invalid -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_port_mac_server_hardware_invalid ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_validate -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_inspect_hardware -ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_inspect_hardware ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_persistent -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_persistent ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_true -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_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.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_no_manage_agent ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__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_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_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_console_utils.ConsoleUtilsTestCase.test_stop_socat_console -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false ... ok -ironic.tests.unit.drivers.modules.test_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.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_whole_disk_image_missing_root ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection ... 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.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href ... ok -ironic.tests.unit.drivers.modules.test_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_inspector.CommonFunctionsTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_error -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_error ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm ... ok +ironic.tests.unit.conductor.test_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 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} -GOT:Response: 400 Bad Request +POST: /v1/nodes {'name': None, 'uuid': '9251033f-9e25-476b-aa3a-ee1a06057598', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-0e1d2905-200e-441a-b23b-42a09972cabb +Location: http://localhost/v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598 +Openstack-Request-Id: req-3f9e9e37-c2c4-4d97-b8a3-dc3ee2a6c8e1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/console {'enabled': 'invalid-value'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "9251033f-9e25-476b-aa3a-ee1a06057598", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598", "rel": "self"}, {"href": "http://localhost/nodes/9251033f-9e25-476b-aa3a-ee1a06057598", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598/ports", "rel": "self"}, {"href": "http://localhost/nodes/9251033f-9e25-476b-aa3a-ee1a06057598/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598 {} +GOT:{'uuid': '9251033f-9e25-476b-aa3a-ee1a06057598', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598', 'rel': 'self'}, {'href': 'http://localhost/nodes/9251033f-9e25-476b-aa3a-ee1a06057598', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9251033f-9e25-476b-aa3a-ee1a06057598/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9251033f-9e25-476b-aa3a-ee1a06057598/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-544501b8-15e8-477c-851d-85b299613578 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.11 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "extra": {}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:57.491955+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:57.491955+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {'foo': 123}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-91734f77-3ec1-4493-90ad-07b8d10d5676 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-8dfa2cbe-baaf-43bc-87eb-1fd1b8b48149 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute enabled. Value: 'invalid-value'. unable to convert to boolean. Error: Unrecognized value 'invalid-value', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} -DELETE: /v1/nodes/node-39/traits/CUSTOM_12 -GOT:Response: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": null, "reservation": null, "provision_updated_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {"foo": 123}, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-12-04T17:53:57.891590+00:00"}ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down_cleaning +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down_cleaning ... 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.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ... 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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify ... ok +ironic.tests.unit.conductor.test_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.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.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_swift +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_swift ... 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.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 + +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'pxe_enabled': True, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:59.514878+00:00', 'updated_at': None} +GET: /v1/ports {} +GOT:{'ports': []} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-df06e332-9778-4712-8a1a-57edbf48fd28 +Openstack-Request-Id: req-1a35e337-465c-41ef-baca-2d9b3a6918f4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} +X-Openstack-Ironic-Api-Version: 1.34 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "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"}], "created_at": "2021-12-04T17:53:59.980829+00:00", "updated_at": "2021-12-04T17:54:00.079468+00:00"} +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-3fdbbd0b-f6cc-4bef-8708-f6e88a288237 +Openstack-Request-Id: req-1b360913-5e25-48fe-96d5-6bf1908b9fbe X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -GET: /v1/ports?fields=uuid,extra {} -GOT:{'ports': [{'uuid': '6d10c2b1-6134-477a-9e75-9ce500f9b806', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/6d10c2b1-6134-477a-9e75-9ce500f9b806', 'rel': 'self'}, {'href': 'http://localhost/ports/6d10c2b1-6134-477a-9e75-9ce500f9b806', 'rel': 'bookmark'}]}, {'uuid': '3eced5da-44e8-4b6f-a1cb-0b2e9a75db29', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/3eced5da-44e8-4b6f-a1cb-0b2e9a75db29', 'rel': 'self'}, {'href': 'http://localhost/ports/3eced5da-44e8-4b6f-a1cb-0b2e9a75db29', 'rel': 'bookmark'}]}, {'uuid': '460e5625-2f38-44f5-8bc5-0a3722aae592', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/460e5625-2f38-44f5-8bc5-0a3722aae592', 'rel': 'self'}, {'href': 'http://localhost/ports/460e5625-2f38-44f5-8bc5-0a3722aae592', 'rel': 'bookmark'}]}]} -PATCH: /v1/ports/6cd9fa42-21e4-4e75-b581-7ca67f044cbc [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} +PATCH: /v1/ports/bba11c28-8324-4d6d-90bd-41b88bc1fe88 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2cc58755-b025-4d80-9c24-5078fe2d2db5 +Openstack-Request-Id: req-79f54572-5a68-468f-820f-d234d0e491a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "6cd9fa42-21e4-4e75-b581-7ca67f044cbc", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "original"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/6cd9fa42-21e4-4e75-b581-7ca67f044cbc", "rel": "self"}, {"href": "http://localhost/ports/6cd9fa42-21e4-4e75-b581-7ca67f044cbc", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.406294+00:00", "updated_at": "2023-01-07T00:10:09.476776+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] +{"uuid": "bba11c28-8324-4d6d-90bd-41b88bc1fe88", "address": "52:55:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/bba11c28-8324-4d6d-90bd-41b88bc1fe88", "rel": "self"}, {"href": "http://localhost/ports/bba11c28-8324-4d6d-90bd-41b88bc1fe88", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:01.073518+00:00", "updated_at": "2021-12-04T17:54:01.231503+00:00"} +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-c33ed929-a0b6-4dcc-97bf-70398b4202b4 +Openstack-Request-Id: req-2abfd140-2386-4acf-a112-f8c3d32b79e4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/address' is a mandatory attribute and can not be removed\", \"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-8cdebe9a-4ae4-4ea6-9789-683d86fba00d +Openstack-Request-Id: req-f8e3c393-2d1b-45ca-a8bb-4e68f7da74c1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.827682+00:00", "updated_at": "2023-01-07T00:10:09.914910+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.33 +{"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-d544c99b-7e72-4cdd-8e08-70eb59b67f8a +Openstack-Request-Id: req-6d169ee4-96a5-4188-b308-e71c8cf66c34 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.030281+00:00", "updated_at": null} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'addd1dbd-433b-450f-a2fe-fbe416b37b44', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '7590e5c0-84a5-4e5e-adab-f95e1c139a1e', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '20e9ae33-0282-4aa6-bc25-13f38fbf32f4'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-08d7c913-c32f-401f-beda-c6660658b0d3 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-803c9e74-8f54-4a9b-b1fc-5949af9e618e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.24 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "7590e5c0-84a5-4e5e-adab-f95e1c139a1e", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.217562+00:00", "updated_at": "2023-01-07T00:10:10.338118+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "20e9ae33-0282-4aa6-bc25-13f38fbf32f4"}, "internal_info": {"tenant_vif_port_id": "20e9ae33-0282-4aa6-bc25-13f38fbf32f4"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.200327+00:00", "updated_at": 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, '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-32f60d67-dae5-44e0-b50d-cad1b1a5233a +Openstack-Request-Id: req-735185d7-0b74-4e50-9c8b-2521ba278302 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"}ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed ... ok -ironic.tests.unit.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.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_port.TestPost.test_create_port_novif_pxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup ... ok -ironic.tests.unit.drivers.modules.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.IPMIToolShellinaboxTestCase.test_start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_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__start_console_fail_nodir -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.CleanUpFullFlowTestCase.test_clean_up_with_master -ironic.tests.unit.drivers.modules.test_iscsi_deploy.CleanUpFullFlowTestCase.test_clean_up_with_master ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_cannot_send_create_port -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_cannot_send_create_port ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot_uefi ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step ... 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_portgroup.TestListPortgroups.test_detail_query -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_and_fields ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_dir_path -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_dir_path ... 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_portgroup_by_address_invalid_address_format -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_file_path -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_file_path ... 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_ramdisk.TestLookup.test_old_api_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout ... 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_pxe.CleanUpPxeEnvTestCase.test__clean_up_pxe_env -ironic.tests.unit.drivers.modules.test_pxe.CleanUpPxeEnvTestCase.test__clean_up_pxe_env ... 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_pxe.PXEBootTestCase.test_is_force_persistent_boot_device_enabled -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_is_force_persistent_boot_device_enabled ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_attr ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_invalid_op ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_dynamic_drivers -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_dynamic_drivers ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inspect_abort -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inspect_abort ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_configdrive ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_ipa_debug -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_ipa_debug ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_missing_deploy_kernel -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_missing_deploy_kernel ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_one -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_one ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_byte_to_byte ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach_unicode_to_byte ... ok -ironic.tests.unit.api.controllers.v1.test_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_connector.TestDelete.test_delete_volume_connector_node_locked -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate ... ok - -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 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': {}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-71082b6b-0766-448b-a5f5-c3b833c3bd49 +Openstack-Request-Id: req-d8447de9-d199-453f-9ddc-2809eacd42ba X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.451698+00:00"} -PATCH: /v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.14 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/portgroups {} +GOT:{'portgroups': [{'uuid': '47162868-4ca0-48b8-96d6-46dd992e581e', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/47162868-4ca0-48b8-96d6-46dd992e581e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/47162868-4ca0-48b8-96d6-46dd992e581e', 'rel': 'bookmark'}]}, {'uuid': '4870c5d8-e75f-46de-b5e3-074996a13a8a', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/4870c5d8-e75f-46de-b5e3-074996a13a8a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4870c5d8-e75f-46de-b5e3-074996a13a8a', 'rel': 'bookmark'}]}, {'uuid': '6f09aa0b-c397-4dc0-9225-8771499aa87a', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/6f09aa0b-c397-4dc0-9225-8771499aa87a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6f09aa0b-c397-4dc0-9225-8771499aa87a', 'rel': 'bookmark'}]}, {'uuid': '7d13c2b3-8bb0-4742-8ba1-b8667fea2411', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/7d13c2b3-8bb0-4742-8ba1-b8667fea2411', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7d13c2b3-8bb0-4742-8ba1-b8667fea2411', 'rel': 'bookmark'}]}, {'uuid': '49ba6794-855c-443b-a85a-7a69b4a9c07a', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/49ba6794-855c-443b-a85a-7a69b4a9c07a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/49ba6794-855c-443b-a85a-7a69b4a9c07a', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_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_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_with_prep ... ok + +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-52d28199-b408-404c-87dd-7eaea5fdf692 +Openstack-Request-Id: req-7125e8d6-0c23-4261-a4f6-0a706142eedd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.451698+00:00"} -PATCH: /v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: {'port_id'}\", \"debuginfo\": null}"} +DELETE: /v1/portgroups/52:54:00:cf:2d:31 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c26d827e-3083-4c87-83e3-eb62d4dd480a +{"error_message": "400 Bad Request\n\nThe server could not comply with the request since it is either malformed or otherwise incorrect.\n\n Expected a logical name or UUID but received 52:54:00:cf:2d:31. "} +GET: /v1/portgroups?node=test-node {} +GOT:{'portgroups': [{'uuid': 'f7e16bdf-cfbf-4d94-8661-91b743094e2d', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/f7e16bdf-cfbf-4d94-8661-91b743094e2d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f7e16bdf-cfbf-4d94-8661-91b743094e2d', 'rel': 'bookmark'}]}, {'uuid': '41efa9d0-7a76-45cc-9e4c-48c03f69736f', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/41efa9d0-7a76-45cc-9e4c-48c03f69736f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/41efa9d0-7a76-45cc-9e4c-48c03f69736f', 'rel': 'bookmark'}]}, {'uuid': '3f010969-3fa3-4f3c-aa0e-2d12507301d7', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/3f010969-3fa3-4f3c-aa0e-2d12507301d7', 'rel': 'self'}, {'href': 'http://localhost/portgroups/3f010969-3fa3-4f3c-aa0e-2d12507301d7', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.160085+00:00', 'updated_at': None}]} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:03.384550+00:00', 'updated_at': None} +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-1ecda7f2-8374-421d-850a-927cebd7a043 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": null, "links": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "self"}, {"href": "http://localhost/nodes/67dcf5b9-fa4b-4eb3-8037-7b90bc03a9d1/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "conductor_group": "", "updated_at": null, "created_at": "2023-01-07T00:10:06.451698+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"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-1013f6e2-b5c7-49e4-b492-6a10eb30eb83 +Openstack-Request-Id: req-ec76e381-d75e-4336-bff5-20a72f4c2ed3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.45 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2023-01-07T00:10:07.098791+00:00"}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_node.TestPost.test_create_node_invalid_chassis -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_not_acceptable ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_valid_timeout_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_older_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode ... 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_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_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_node_locked -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked ... 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_portgroup_name -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_name ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v3 ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout ... 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_masterswitchplus_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_snmp_objects ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off ... ok - +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup pg.1: Cannot change name to invalid name 'aa:bb_cc'\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fcbd2148-1cd2-4e97-ab78-6d814b7286cb +Openstack-Request-Id: req-e9dfc1fe-1933-4c2e-8fa4-850e4347ece7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.223393+00:00", "updated_at": "2023-01-07T00:10:09.295510+00:00"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-c69cc22b-7b2a-4b60-8a8e-4a620cda6a85 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:09.458207+00:00", "updated_at": null} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:09.458207+00:00', 'updated_at': None} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.969378+00:00", "updated_at": "2021-12-04T17:54:04.053844+00:00"} 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-5ac274a1-4d2e-4c4c-8f88-e5a5df96c87e +Openstack-Request-Id: req-e4aa1224-1146-49b1-9a36-88c0dfadc0ec X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 @@ -14630,6737 +14371,7029 @@ POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-0adf532f-4d01-4978-b801-4c2e83fd5ca6 +Openstack-Request-Id: req-f01933e1-65b8-40e9-98bc-584d6e73b0ac X-Openstack-Ironic-Api-Maximum-Version: 1.46 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'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-5f7ccafc-f21f-4345-b0bb-e06837fa6ae0 +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, '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-c69fba57-c066-4716-bc60-df77a433e437 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.363494+00:00", "updated_at": null} +GET: /v1/volume/connectors {}ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_true +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_true ... ok -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=10b2781a-51bd-4b35-ba3d-7c0b0e592f2f {} -GOT:{'node': {'uuid': '10b2781a-51bd-4b35-ba3d-7c0b0e592f2f', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/10b2781a-51bd-4b35-ba3d-7c0b0e592f2f', 'rel': 'self'}, {'href': 'http://localhost/nodes/10b2781a-51bd-4b35-ba3d-7c0b0e592f2f', '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}} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] -GOT:Response: 400 Bad Request +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-cd7dc1e7-ffa3-43f1-8b98-fb564eb9a989 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.999723+00:00", "updated_at": null} +POST: /v1/portgroups {'uuid': '8c9821fd-1b4f-41ed-9447-e56868fc8261', 'name': 'c40370c7-3f0a-4e1a-91e7-47929aed4684', '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-44c274eb-1960-4ee2-b347-1a3a922ab1e3 +Openstack-Request-Id: req-5f8eddcf-e6da-4ec0-9640-17b41054ba63 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} -GET: /v1/volume/targets?detail=True&limit=3 {} -GOT:{'targets': [{'uuid': 'ac922b68-8793-4013-81bd-b9d8957aed08', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ac922b68-8793-4013-81bd-b9d8957aed08', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ac922b68-8793-4013-81bd-b9d8957aed08', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:11.283218+00:00', 'updated_at': None}, {'uuid': 'e4c1c630-a4f3-40ad-91cb-18c66ffd4b20', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 1, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/e4c1c630-a4f3-40ad-91cb-18c66ffd4b20', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e4c1c630-a4f3-40ad-91cb-18c66ffd4b20', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:11.285548+00:00', 'updated_at': None}, {'uuid': 'fad4ebe2-4630-461f-8b5c-bd9fb7dc850a', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 2, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/fad4ebe2-4630-461f-8b5c-bd9fb7dc850a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/fad4ebe2-4630-461f-8b5c-bd9fb7dc850a', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:11.287477+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=fad4ebe2-4630-461f-8b5c-bd9fb7dc850a'} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:11.497440+00:00', 'updated_at': None}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.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_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.test_acl.TestACL.test_non_authenticated -ironic.tests.unit.api.test_acl.TestACL.test_non_authenticated ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... 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_middleware.TestCORSMiddleware.test_invalid_cors_get_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request ... ok -ironic.tests.unit.api.test_root.TestRoot.test_get_root -ironic.tests.unit.api.test_root.TestRoot.test_get_root ... ok +{"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-1b25f79f-4da5-495a-b5f3-6f8c30853f7e +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:06.100751+00:00", "updated_at": null} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': 'aa:bb:cc:dd:ee:ff', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.100751+00:00', 'updated_at': None} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'foo'}, '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-1026ef27-0394-4ff0-88aa-62e5ed63e1cd +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "foo"}, "internal_info": {"tenant_vif_port_id": "foo"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:06.269508+00:00", "updated_at": null} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} +GOT:{'node': {'uuid': '877c2f94-399a-4e7e-87de-e1bb96615e41', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/877c2f94-399a-4e7e-87de-e1bb96615e41', 'rel': 'self'}, {'href': 'http://localhost/nodes/877c2f94-399a-4e7e-87de-e1bb96615e41', '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}} +GET: /v1/ {} +GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], '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'}]} +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/volume/connectors {} +GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Request-Id: req-31d72636-8369-47bb-a656-e4e2ace07ac8 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_node_locked ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks ... ok ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_on_missing_default_boot_option ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_on_missing_default_boot_option ... ok -ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version -ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found ... 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.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface_default_from_conf ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default ... ok -ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg -ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg ... ok -ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable -ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable ... ok -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth ... ok -ironic.tests.unit.common.test_glance_service.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_client_init_failure ... ok +ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client +ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client ... ok +ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state +ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_makes_datetimes ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers ... ok +ironic.tests.unit.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.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_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_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios_conf_ldlinux ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_always_umount -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_always_umount ... 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.common.test_images.FsImageTestCase.test__umount_without_raise +ironic.tests.unit.common.test_images.FsImageTestCase.test__umount_without_raise ... 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.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments ... ok -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ... ok -ironic.tests.unit.common.test_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.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir_ipxe -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir_ipxe ... 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.common.test_images.IronicImagesTestCase.test_fetch_image_service +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance ... ok +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name ... ok +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth ... ok +ironic.tests.unit.common.test_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_get_tftp_path_prefix_with_trailing_slash +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_tftp_path_prefix_with_trailing_slash ... 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_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.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.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta -ironic.tests.unit.common.test_swift.SwiftTestCase.test_update_object_meta ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... ok -ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_failure -ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_failure ... ok -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found ... ok -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ... 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.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name -ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_unset_clean_step -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps_unset_clean_step ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.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.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync ... ok -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_locked ... ok -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object ... 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.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_maintenance_set_false -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver ... ok -ironic.tests.unit.conductor.test_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_validate_driver_interfaces -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... ok -ironic.tests.unit.conductor.test_task_manager.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.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.TaskManagerTestCase.test_excl_lock_get_ports_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm ... ok -ironic.tests.unit.conductor.test_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.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_manual ... 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.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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ... 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_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.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht ... ok -ironic.tests.unit.db.test_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.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_nodes.DbNodeTestCase.test_destroy_node_by_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection ... 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_ports.DbPortTestCase.test_get_port_list -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... 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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_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__prepare_variables_configdrive_file -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_fail -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_reboot_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host ... ok -ironic.tests.unit.drivers.modules.drac.test_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_set_boot_device -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.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__find_configuration -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration ... 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.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.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_rescuing ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_swift ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_invalid_component -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_invalid_component_type -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_invalid_component_type ... 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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration_return_cleared_raid_config ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup ... ok -ironic.tests.unit.drivers.modules.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.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra ... 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.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_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.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id ... ok -ironic.tests.unit.drivers.modules.network.test_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.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot ... 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.oneview.test_common.OneViewCommonTestCase.test__validate_node_enclosure_group_invalid -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_enclosure_group_invalid ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_not_in_use_by_oneview -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_not_in_use_by_oneview ... ok -ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_get_properties -ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... ok -ironic.tests.unit.drivers.modules.test_agent.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_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.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_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation ... 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__get_command_body -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target ... 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_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_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_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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_invalid_type ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises ... 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.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_image_cache.CleanupImageCacheTestCase.test_both_clean_up -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up ... ok -ironic.tests.unit.drivers.modules.test_image_cache.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.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_inspector.CheckStatusTestCase.test_not_inspecting -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... 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_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.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_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_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.IPMIToolShellinaboxTestCase.test__start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default ... 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.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_rescue ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... ok -ironic.tests.unit.drivers.modules.test_snmp.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_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_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.SNMPDriverTestCase.test_reboot_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error ... ok -ironic.tests.unit.drivers.modules.test_snmp.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_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_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_snmp_v2c -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c ... 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.ucs.test_power.UcsPowerTestCase.test_set_power_state_timeout -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_timeout ... 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.test_base.TestBIOSInterface.test_apply_configuration_wrapper -ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ... ok -ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables -ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... ok -ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat -ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe ... ok -ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_with_inspector_interface_enabled -ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_with_inspector_interface_enabled ... 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.objects.test_fields.TestNotificationLevelField.test_coerce_good_value -ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ... ok -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type ... 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.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 -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.objects.test_node.TestNodeObject.test_create_with_invalid_properties -ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set -ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor -ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object -ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_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_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict -ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ... 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_volume_connector.TestVolumeConnectorObject.test_refresh -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ... 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.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_deploy_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_deploy_ramdisk ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off ... 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_volume_connector.TestPatch.test_add_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_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_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_utils.GenericUtilsTestCase.test_hash_file_for_sha1 +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha1 ... 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.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success +ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success ... ok +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on ... ok +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean ... ok +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_configdrive ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_old +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_old ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_volume_connector.TestPatch.test_update_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one ... 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.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_volume_target.TestPost.test_create_volume_target_error +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ... 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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... ok -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': None, 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:12.106965+00:00', 'updated_at': None} -GET: /v1/lookup {} -GOT:Response: 400 Bad Request +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f5555818-68b2-4486-9e0f-362914814e1a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.571872+00:00", "updated_at": "2021-12-04T17:54:04.650062+00:00"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-eb29241c-cd8a-40ef-9962-5ce2cff78aa6 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-ffa93b7f-50d4-4772-9b4a-db55a36962e2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.804066+00:00", "updated_at": null} +POST: /v1/heartbeat/test.1 {'callback_url': 'url'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-9c819885-3e38-452a-b79a-494bf7404762 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 + +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-4df16c9e-c15f-43f7-8950-bdea19e7029a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 + +GET: /v1/lookup {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fc783811-bf21-430f-bf17-d879b4195987 +Openstack-Request-Id: req-eaa6a434-a928-4ba1-bfe2-6a49e0cdf266 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} -GET: /v1/volume/connectors {} -GOT:{'connectors': [{'uuid': '2a6fdc9c-5e40-4bc7-a2df-08ec10ac63a4', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/2a6fdc9c-5e40-4bc7-a2df-08ec10ac63a4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2a6fdc9c-5e40-4bc7-a2df-08ec10ac63a4', 'rel': 'bookmark'}]}, {'uuid': '16ee6c3a-7a5f-4944-8492-fe8d4a7e5352', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/16ee6c3a-7a5f-4944-8492-fe8d4a7e5352', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/16ee6c3a-7a5f-4944-8492-fe8d4a7e5352', 'rel': 'bookmark'}]}, {'uuid': '9ba62b4a-4a35-4c3c-8dfa-ebb85c78fa2e', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/9ba62b4a-4a35-4c3c-8dfa-ebb85c78fa2e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/9ba62b4a-4a35-4c3c-8dfa-ebb85c78fa2e', 'rel': 'bookmark'}]}, {'uuid': 'f44b7717-39e0-4161-9c79-9ecb263fdf5e', 'type': 'iqn', 'connector_id': 'test-connector_id-3', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/f44b7717-39e0-4161-9c79-9ecb263fdf5e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f44b7717-39e0-4161-9c79-9ecb263fdf5e', 'rel': 'bookmark'}]}, {'uuid': 'a0bab7a1-735a-4ef9-a28f-671a9e45e0a1', 'type': 'iqn', 'connector_id': 'test-connector_id-4', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/a0bab7a1-735a-4ef9-a28f-671a9e45e0a1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a0bab7a1-735a-4ef9-a28f-671a9e45e0a1', 'rel': 'bookmark'}]}]} -GET: /v1/volume/connectors?sort_key=uuid {} -GOT:{'connectors': [{'uuid': '3179f979-585a-4e84-a3c2-dd2e828816cd', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/3179f979-585a-4e84-a3c2-dd2e828816cd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3179f979-585a-4e84-a3c2-dd2e828816cd', 'rel': 'bookmark'}]}, {'uuid': '689b8e5b-8911-43c6-9b7c-0a80bb7aef29', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/689b8e5b-8911-43c6-9b7c-0a80bb7aef29', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/689b8e5b-8911-43c6-9b7c-0a80bb7aef29', 'rel': 'bookmark'}]}, {'uuid': '6fd0bb72-bad0-4244-907b-9d8ff0556b2b', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6fd0bb72-bad0-4244-907b-9d8ff0556b2b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6fd0bb72-bad0-4244-907b-9d8ff0556b2b', 'rel': 'bookmark'}]}]} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"At least one of 'addresses' and 'node_uuid' parameters is required\", \"debuginfo\": null}"} +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5f5a9c90-7011-4781-9a0f-e6c0bf97d62a +Openstack-Request-Id: req-eab3b9f6-851d-4496-a24d-6727c7cf62a7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-999', 'op': 'replace'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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-60d5abc7-9f7b-45e0-99b1-02930289dfc9 +Openstack-Request-Id: req-893adecd-9d6f-497d-af31-b1c29dbb6159 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-999", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:13.363679+00:00", "updated_at": null} -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} +POST: /v1/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": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: /v1/volume/targets?detail=True&node=test-node {} -GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:13.491150+00:00', 'updated_at': None}]} -GET: /v1/volume/targets?detail=False {} -GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] -GOT:Response: 409 Conflict +GET: /v1/volume/targets?node=test-node {} +GOT:{'targets': [{'uuid': 'f1ccc12e-eedf-4763-b747-59fb5b1fe9b7', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/f1ccc12e-eedf-4763-b747-59fb5b1fe9b7', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f1ccc12e-eedf-4763-b747-59fb5b1fe9b7', 'rel': 'bookmark'}]}, {'uuid': '03b6ffc6-e25c-4f70-8481-5769baf76c19', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/03b6ffc6-e25c-4f70-8481-5769baf76c19', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/03b6ffc6-e25c-4f70-8481-5769baf76c19', 'rel': 'bookmark'}]}, {'uuid': 'a9f6a394-fc68-4f33-9cf7-b19dc8560837', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/a9f6a394-fc68-4f33-9cf7-b19dc8560837', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a9f6a394-fc68-4f33-9cf7-b19dc8560837', 'rel': 'bookmark'}]}]} +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.010661+00:00', 'updated_at': None} +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-846b3332-fd57-4636-8f4a-58abaec257cd +Openstack-Request-Id: req-a07c5dcd-d9a7-426c-a77b-21a2fb3b3038 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume target with boot index '100' for the same node already exists.\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/a04d5c91-dbac-450f-a79e-227969eb0a2a [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"debuginfo\": null}"} +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-bfd8fa00-6159-4990-a101-bf81eaaea654 +Openstack-Request-Id: req-d68bb34b-278c-415e-a6d9-c11b5950bed5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target a04d5c91-dbac-450f-a79e-227969eb0a2a could not be found.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug_tracebacks ... ok -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root ... 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.common.test_cinder.TestCinderActions.test_attach_volumes -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ... 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.common.test_cinder.TestCinderSession.test__get_cinder_session -ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session ... ok -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_additional_defaults ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config ... ok -ironic.tests.unit.common.test_driver_factory.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.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_no_defaults -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_no_defaults ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf ... ok -ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable -ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable ... 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.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_uncached -ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached ... ok -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_out_range_auth_strategy -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_out_range_auth_strategy ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_with_ExecutionError -ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_with_ExecutionError ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_for_hrefs -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_for_hrefs ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_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_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_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_extra -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_extra ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:06.103102+00:00", "updated_at": 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': 123}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.test_acl.TestACL.test_non_authenticated +ironic.tests.unit.api.test_acl.TestACL.test_non_authenticated ... ok +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ... ok +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root ... ok +ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version +ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions ... 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.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_network_from_additional_defaults_hardware_type ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing ... ok +ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable +ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable ... 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.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.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error ... ok +ironic.tests.unit.conductor.test_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.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_wrong_provision_state_on_upgrade_lock ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked ... 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.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace ... ok +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config ... 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.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_ipxe_timeout +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_ipxe_timeout ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data ... ok +ironic.tests.unit.common.test_glance_service.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.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.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_efibootimg +ironic.tests.unit.common.test_images.FsImageTestCase.test__mount_deploy_iso_fail_no_efibootimg ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_not_raw_after_conversion ... ok +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail ... ok +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_rescuing ... ok +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info ... ok +ironic.tests.unit.common.test_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.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_port_missing -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing ... ok -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_single_segment ... ok -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_deprecated_opts -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_deprecated_opts ... 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.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding ... ok -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_elilo -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_elilo ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_uefi -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance_ipxe_uefi ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info_ipxe ... ok -ironic.tests.unit.common.test_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.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary ... ok -ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success -ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success ... 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.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.conductor.test_manager.BootDeviceTestCase.test_get_boot_device -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ... 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.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_automated_clean ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled ... ok -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_worker_pool_full ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_enabled ... ok -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_steps_exception -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_steps_exception ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover -ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ... 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.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.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire ... ok -ironic.tests.unit.conductor.test_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.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver ... ok -ironic.tests.unit.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.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.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.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.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_object_class_action_versions_invalid_version -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions_invalid_version ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_release_clears_resources ... ok -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception ... ok -ironic.tests.unit.conductor.test_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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout ... ok -ironic.tests.unit.conductor.test_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.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.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_walk_versions ... skipped u"Backend 'postgresql' is unavailable: Could not connect" -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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_existing_fails ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ... 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.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance_deprecated -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance_deprecated ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path ... ok -ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login_exception -ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login_exception ... ok -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device_fail -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_validate -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_get_properties ... 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.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_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.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_invalid_parameter -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_invalid_parameter ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_uuid -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_uuid ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_instance_boot_from_volume ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok -ironic.tests.unit.drivers.modules.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.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_remove_image_from_swift_suppresses_operror_exc -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum_throws_for_failed_validation ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist_mac_exception -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist_mac_exception ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_no_firmware_url -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_no_firmware_url ... 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.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default ... ok -ironic.tests.unit.drivers.modules.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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_standalone_ports ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports ... ok -ironic.tests.unit.drivers.modules.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_vif_detach_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup ... 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_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.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.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_boot_option_local -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_local ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_missing_values_empty_string -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_missing_values_empty_string ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_deploy ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_maintenance_when_raise_exception -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_maintenance_when_raise_exception ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state_fail -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state_fail ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_fail -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_sensors_data ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency ... ok -ironic.tests.unit.drivers.modules.redfish.test_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.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_no_manage_agent_boot ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_still_running -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_still_running ... 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_reboot_to_instance_localboot -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_localboot ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_driver_info_manage_agent_boot_false ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue_fails -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue_fails ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_interface -ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_interface ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive ... 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_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_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield -ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_uefi -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_uefi ... 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.TestStorageInterfaceUtils.test_check_interface_capability -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_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_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_timeout -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying_storage_should_write_false ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_file_different ... 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_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_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_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_swift -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_swift ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_deploy_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_deploy_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_localboot -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_localboot ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_rescue ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_three -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_three ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ... 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_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_power_off_delay -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ... ok -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] +GET: /v1/portgroups/b325f79d-5d18-4744-8dff-2cfff0ee1d78/ports {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/portgroups?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7ffe1f33-c5d9-46b5-ae9a-90a0a0b08a9a +Openstack-Request-Id: req-658aea19-8bc9-4607-ab91-521018460f7a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/portgroups?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-83959ddd-42d0-4d9d-a9ec-a1bf00ed3cf8 +Openstack-Request-Id: req-87680d86-9618-4459-b2a5-3e6b6f21f0ac X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 401 Unauthorized -Content-Type: application/json -Www-Authenticate: Keystone uri="https://127.0.0.1:35357" -{"error": {"code": 401, "title": "Unauthorized", "message": "The request you have made requires authentication."}} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-76dc9a7c-3198-46f7-bca2-9fd597441a98 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} -GET: / {} -GOT:{'name': 'OpenStack Ironic API', 'description': 'Ironic is an OpenStack project which aims to provision baremetal machines.', 'versions': [{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.46', 'min_version': '1.1'}], 'default_version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.46', 'min_version': '1.1'}} - -GOT:Response: 201 Created +{"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 -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-a14b82e2-052a-4adb-ad92-ced7ff20e592 +Openstack-Request-Id: req-087206ad-bcf5-4657-87e7-22a665343bb3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.23 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} -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/connectors?detail=True {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.46 +{"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 -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] +Openstack-Request-Id: req-e5f33921-f008-4037-a230-b40970091d3c +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"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-1fdacdf7-b583-4bfa-9fcb-f4f6965fa384 +Openstack-Request-Id: req-8965c2ec-9932-4a53-8192-7cb1ad502b05 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:13.133145+00:00", "updated_at": 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 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.907696+00:00", "updated_at": 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-d03586c2-0565-4891-96bb-9f8854bae17e +Openstack-Request-Id: req-fb3117d2-722a-4f19-b9eb-4cb2df9cc6ed X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute type. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} -GET: /v1/volume/targets/?limit=3 {} -GOT:{'targets': [{'uuid': '27074d46-1f3c-462e-ae3e-d6c9c55eefcf', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/27074d46-1f3c-462e-ae3e-d6c9c55eefcf', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/27074d46-1f3c-462e-ae3e-d6c9c55eefcf', 'rel': 'bookmark'}]}, {'uuid': '2f8de586-7f4a-4eda-be76-c37253d3dde4', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/2f8de586-7f4a-4eda-be76-c37253d3dde4', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/2f8de586-7f4a-4eda-be76-c37253d3dde4', 'rel': 'bookmark'}]}, {'uuid': 'cfc4ec9d-71af-4375-88cb-86560fcb92ef', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/cfc4ec9d-71af-4375-88cb-86560fcb92ef', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/cfc4ec9d-71af-4375-88cb-86560fcb92ef', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=cfc4ec9d-71af-4375-88cb-86560fcb92ef'} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.158690+00:00", "updated_at": "2021-12-04T17:54:03.164329+00:00"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-1f87365a-12c8-44db-b40b-11ba595fde82 +Openstack-Request-Id: req-52cf5987-ffbd-41e9-84bb-e3ebfb6cb5d7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"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': 123} -GOT:Response: 400 Bad Request +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.158690+00:00", "updated_at": "2021-12-04T17:54:03.164329+00:00"} +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-e35b164d-0631-4f15-b981-a485dbcb4a90 +Openstack-Request-Id: req-c817f497-5f41-459a-adc0-7d6139266985 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"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': {}} +X-Openstack-Ironic-Api-Version: 1.38 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.484949+00:00", "updated_at": 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-f3fbac0b-2c76-468c-81f4-3a81c8949a0b +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.26 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.824376+00:00", "updated_at": null} +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-a460c25c-d932-41ef-ac6f-ced9f56b2a90 +Openstack-Request-Id: req-1bd81541-642d-4899-97f7-294b7bf008f3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} -GET: /v1/ {} -GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], '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'}], 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', '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'}]}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.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.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached ... ok -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available ... ok -ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context -ironic.tests.unit.common.test_context.RequestContextTestCase.test_create_context ... ok -ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context -ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task ... ok -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_missing ... 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.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image ... 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.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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot create portgroup with invalid name 'aa:bb_cc'\", \"debuginfo\": null}"}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_ramdisk.TestLookup.test_found_by_only_uuid +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_only_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_restrict_lookup ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring +ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values +ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_driver_fail ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_resource_class_fail ... 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_volume_connector.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... ok +ironic.tests.unit.api.controllers.v1.test_volume_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_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.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_initialize_connection_failure ... ok +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ... 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.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.common.test_fsm.FSMTest.test_process_event +ironic.tests.unit.common.test_fsm.FSMTest.test_process_event ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_false +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_false ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_true +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_image_href_ordinary_file_name_true ... ok +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_no_refresh ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_no_refresh ... ok -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... ok -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_image_service_invalid_image_ref ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_umount_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_umount_fails ... 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_keystone.KeystoneTestCase.test_get_session +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session ... ok ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ... ok -ironic.tests.unit.common.test_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.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups ... ok -ironic.tests.unit.common.test_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.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure ... ok -ironic.tests.unit.common.test_neutron.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.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_localboot +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_localboot ... 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.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ... ok +ironic.tests.unit.common.test_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.conductor.test_manager.VifTestCase.test_vif_list +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_multiple_segments ... ok +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_deprecated_opts +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_deprecated_opts ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface_with_client_id ... ok ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ... ok -ironic.tests.unit.common.test_pxe_utils.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.common.test_pxe_utils.TestPXEUtils.test_default_elilo_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_elilo_config ... 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.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects ... ok -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha1 -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha1 ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ... ok -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts -ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled ... 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.conductor.test_manager.CreateNodeTestCase.test_create_node -ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node ... 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.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_with_exception +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_exception ... ok +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... ok +ironic.tests.unit.common.test_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.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi ... ok +ironic.tests.unit.common.test_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.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info_bad_driver_info ... ok +ironic.tests.unit.common.test_pxe_utils.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.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_true +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_true ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_soft_poweroff_doesnt_complete ... ok +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported ... ok +ironic.tests.unit.common.test_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.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.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported ... ok +ironic.tests.unit.common.test_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_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_validate_and_normalize_mac +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac ... 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.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free +ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free ... ok +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck ... 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.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_rescue_interface_default_from_conf ... ok +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__deprecated_opts +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__deprecated_opts ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed ... ok +ironic.tests.unit.common.test_glance_service.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.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.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_swift_temp_url_cache_disabled ... ok +ironic.tests.unit.common.test_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_image_service.FileImageServiceTestCase.test_download_copy_fail +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... 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.common.test_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails ... 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.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.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_mac_exists ... ok +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent ... 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.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked ... ok +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ... ok +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_missing ... 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_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_automated_clean_version_mismatch ... 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.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.TestUpdatePortAddress.test_update_port_address_without_binding +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_without_binding ... ok +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get ... ok +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ... ok +ironic.tests.unit.common.test_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.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_already_exists ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config ... ok +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties_custom_schema ... ok +ironic.tests.unit.common.test_raid.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_rpc.TestRequestContextSerializer.test_serialize_context +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context ... 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.common.test_swift.SwiftTestCase.test_head_object +ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id ... 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.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail ... ok +ironic.tests.unit.conductor.test_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.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_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_ipa_debug +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_ipa_debug ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create ... 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.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.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ... ok +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier ... 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.common.test_swift.SwiftTestCase.test_create_object +ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac_invalid_format ... 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.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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ... 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.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name +ironic.tests.unit.conductor.test_manager.DoNodeCleanAbortTestCase.test__do_node_clean_abort_with_step_name ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_swift_error ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_no_steps +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_no_steps ... 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.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ... 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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception ... ok +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_power_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task_shutdown ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done ... ok +ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift +ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_raise ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked ... ok +ironic.tests.unit.conductor.test_manager.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.conductor.test_manager.UpdatePortTestCase.test_update_port +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ... 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.conductor.test_rpcapi.RPCAPITestCase.test_create_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_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.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_utils.MiscTestCase.test__notify_conductor_resume_operation +ironic.tests.unit.conductor.test_utils.MiscTestCase.test__notify_conductor_resume_operation ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_same_state ... ok +ironic.tests.unit.conductor.test_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.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.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_power_on ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception_old -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception_old ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2 -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_2 ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_unexpected_prepare_error ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_disabled -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_disabled ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_fail ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_validate_fail ... 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.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_unset_deploy_step +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_unset_deploy_step ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ... ok +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat +ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_invalid_state ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ... 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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_enroll_on_acquire ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_invalid_state ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_type ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface ... ok -ironic.tests.unit.conductor.test_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.conductor.test_rpcapi.RPCAPITestCase.test_create_port -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ... 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_class_action_versions -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... ok -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_bad_state ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_rescue_error_handler_no_worker ... ok -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_username -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_username ... ok -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout ... ok -ironic.tests.unit.conductor.test_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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_2 ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... skipped u"Backend 'postgresql' is unavailable: Could not connect" -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.test_conductor.DbConductorTestCase.test_get_offline_conductors -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag ... 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.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.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ... 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.db.test_nodes.DbNodeTestCase.test_update_node_no_provision -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid ... 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_get_portgroup_by_address_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted ... ok -ironic.tests.unit.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_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.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_invalid_state -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_invalid_state ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_ok ... 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.ucs.test_management.UcsManagementTestCase.test_get_sensors_data -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_sensors_data ... 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_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.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs ... 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.DracManageVirtualDisksTestCase.test_delete_virtual_disk -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_not_a_glance_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.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.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_incorrect_valid_disks ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_portgroup ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach ... ok -ironic.tests.unit.drivers.modules.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.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.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.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_properties -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_properties ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_cleaning -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_cleaning ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_get_properties -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_available_when_not_in_use_by_oneview -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_available_when_not_in_use_by_oneview ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_on -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_on ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_empty_target_raid_config ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_unknown ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_fails -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_fails ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_nopid ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_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_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_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device -ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_overridden_default_value -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_overridden_default_value ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_invalid -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_invalid ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_bios -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_bios ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_uefi -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_uefi ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_verify_and_update -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_verify_and_update ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_partition_image ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_partition_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_partition_image ... ok -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_up -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_up ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned ... ok -ironic.tests.unit.drivers.modules.test_image_cache.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.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_inspector.InspectHardwareAbortTestCase.test_abort_error -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_first_call_to_address ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username ... 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_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_get_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ... 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_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.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_whole_disk_image ... 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_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_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipa_debug_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipa_debug_rescue ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_ipxe_timeout -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_ipxe_timeout ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_tftp_images_master_path -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_tftp_images_master_path ... ok +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp ... ok +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance ... 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.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_validate_error ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail ... ok +ironic.tests.unit.conductor.test_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.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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_for_node_not_in_use_by_ironic +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_for_node_not_in_use_by_ironic ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot_prep_partition ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning ... 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.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_state_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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_eaton_power_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects ... 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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 ... ok -ironic.tests.unit.drivers.modules.test_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.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_exceed_iterations -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_exceed_iterations ... ok -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot__wait_state_change_fail -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot__wait_state_change_fail ... ok -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client ... ok -ironic.tests.unit.drivers.modules.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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... ok -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail ... ok -ironic.tests.unit.drivers.test_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_storage_fail_fs -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs ... 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.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.objects.test_chassis.TestChassisObject.test_get_by_id -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ... 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_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_list -ironic.tests.unit.objects.test_port.TestPortObject.test_list ... 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_volume_target.TestVolumeTargetObject.test_get -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get ... 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.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.test_drac.IDRACHardwareTestCase.test_override_with_agent -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_agent ... 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_utils.UtilsTestCase.test_get_node_mac_addresses -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_mac_addresses ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces ... ok -ironic.tests.unit.objects.test_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_node.TestConvertToVersion.test_conductor_group_unsupported_unset -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset ... ok -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-51114d84-4543-456f-b82c-16bae57ac04c +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {'foo': 123}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-12-04T17:53:57.891590+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-fae26da8-907e-40ee-b4c3-7c602d99e611 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': 'deleted'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-1e2fccc7-c445-4d45-af23-da5a6d0525d0 +X-Openstack-Ironic-Api-Version: 1.33 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "storage_interface": "cinder", "vendor_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'storage_interface': 'cinder', 'vendor_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-d5813f40-0a91-4625-b2de-202a3966af4e X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 {'boot_device': 'pxe'} +X-Openstack-Ironic-Api-Version: 1.46 +{"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/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": "404 Not Found\n\nThe resource could not be found.\n\n "} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-463b998b-26d6-43a0-8dd0-922522366350 +Openstack-Request-Id: req-25d77b76-7e47-42f2-8179-8b40b1107975 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/node-39/traits/bad_trait {} +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}"}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails ... ok +ironic.tests.unit.api.controllers.v1.test_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_node.TestPut.test_provide_from_manage +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provide_from_manage ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_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_set_boot_device_persistent +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception ... ok +ironic.tests.unit.conductor.test_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.redfish.test_management.RedfishManagementTestCase.test_loading_error +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ... 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_port.TestListPorts.test_collection_links_default_limit +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query_false ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network ... ok +ironic.tests.unit.api.controllers.v1.test_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.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.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_without_is_whole_disk_image +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_without_is_whole_disk_image ... ok + +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-f9c43cc2-879a-4cec-8aec-c9a9b2d5e99f +Openstack-Request-Id: req-25fbafb2-27c5-4c95-affb-39a93ca5fc3a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid trait. A valid trait must be no longer than 255 characters. Standard traits are defined in the os_traits library. A custom trait must start with the prefix CUSTOM_ and use the following characters: A-Z, 0-9 and _\", \"debuginfo\": null}"} -DELETE: /v1/nodes/node-39/traits/CUSTOM_1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-2e47abcb-a1da-4799-a87f-65e2628b0aad +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"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-9f901544-a258-4862-bbf3-3d8f52eb5097 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:09.142885+00:00', 'updated_at': None} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:09.294203+00:00', 'updated_at': None} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'foo': 'bar'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:09.294203+00:00', 'updated_at': None} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:09.494385+00:00', 'updated_at': None} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:09.494385+00:00', 'updated_at': None} -GET: /v1/ports?address=aa:bb:cc:dd:ee:ff {} -GOT:{'ports': []} -GET: /v1/ports?sort_key=uuid {} -GOT:{'ports': [{'uuid': '0a25c4ae-d34c-408f-9225-2321e336433f', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/0a25c4ae-d34c-408f-9225-2321e336433f', 'rel': 'self'}, {'href': 'http://localhost/ports/0a25c4ae-d34c-408f-9225-2321e336433f', 'rel': 'bookmark'}]}, {'uuid': '4b348380-5783-4cb9-b9e4-4fbc1e094962', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/4b348380-5783-4cb9-b9e4-4fbc1e094962', 'rel': 'self'}, {'href': 'http://localhost/ports/4b348380-5783-4cb9-b9e4-4fbc1e094962', 'rel': 'bookmark'}]}, {'uuid': 'e48646c5-9d5b-4134-9d1e-e1dcff56a2a7', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/e48646c5-9d5b-4134-9d1e-e1dcff56a2a7', 'rel': 'self'}, {'href': 'http://localhost/ports/e48646c5-9d5b-4134-9d1e-e1dcff56a2a7', 'rel': 'bookmark'}]}]} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.45 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "instance_uuid": null, "name": "node-57.1", "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "available", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "fault": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "clean_step": {}, "deploy_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "boot_interface": null, "console_interface": null, "deploy_interface": null, "inspect_interface": null, "management_interface": null, "network_interface": null, "power_interface": null, "raid_interface": null, "rescue_interface": null, "storage_interface": null, "vendor_interface": null, "traits": [], "bios_interface": null, "updated_at": "2013-12-03T06:20:41.184720+00:00", "created_at": "2021-12-04T17:53:54.552673+00:00"} +POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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-3b7a96c4-3c8b-4744-922a-6d0bc8a3e0d9 +Openstack-Request-Id: req-38fa5bd6-6e4d-4d20-9e3c-2bee7f2ecfec X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': 'ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/ports/c542f0a2-3c1e-4b15-889a-c107ff1d100b -Openstack-Request-Id: req-5c3a372c-869f-4dfc-ad67-2364df7c6f44 +Location: http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b +Openstack-Request-Id: req-72666b71-41e9-42db-98e4-d5facacb8a5b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "c542f0a2-3c1e-4b15-889a-c107ff1d100b", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/c542f0a2-3c1e-4b15-889a-c107ff1d100b", "rel": "self"}, {"href": "http://localhost/ports/c542f0a2-3c1e-4b15-889a-c107ff1d100b", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.462527+00:00", "updated_at": null} -GET: /v1/ports/c542f0a2-3c1e-4b15-889a-c107ff1d100b {} -GOT:{'uuid': 'c542f0a2-3c1e-4b15-889a-c107ff1d100b', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/c542f0a2-3c1e-4b15-889a-c107ff1d100b', 'rel': 'self'}, {'href': 'http://localhost/ports/c542f0a2-3c1e-4b15-889a-c107ff1d100b', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.462527+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_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_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_ports_by_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.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_update_portgroup_mode_properties_bad_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties_bad_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_standalone_ports_supported_bad_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh -ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... 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_notification.TestNotificationBase.test_emit_notification -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_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_objects.TestObject.test_changes_in_primitive -ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ... 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.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_port.TestConvertToVersion.test_physnet_unsupported_set_remove -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list -ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list ... 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 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b", "rel": "self"}, {"href": "http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/ports", "rel": "self"}, {"href": "http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/volume", "rel": "self"}, {"href": "http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/states", "rel": "self"}, {"href": "http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b {} +GOT:{'uuid': 'ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ddfa7a70-87d3-4abd-b532-2c4cc8e9cf7b/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '63edd8dd-1836-49b7-abce-a5300dda3731', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/63edd8dd-1836-49b7-abce-a5300dda3731 +Openstack-Request-Id: req-e80f864c-2f93-41bf-9a47-8360694a034a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "63edd8dd-1836-49b7-abce-a5300dda3731", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731", "rel": "self"}, {"href": "http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/ports", "rel": "self"}, {"href": "http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/volume", "rel": "self"}, {"href": "http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/states", "rel": "self"}, {"href": "http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731 {} +GOT:{'uuid': '63edd8dd-1836-49b7-abce-a5300dda3731', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731', 'rel': 'self'}, {'href': 'http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/63edd8dd-1836-49b7-abce-a5300dda3731/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '7802d230-278c-4ad5-a7b5-bfd9808d1aa9', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/7802d230-278c-4ad5-a7b5-bfd9808d1aa9 +Openstack-Request-Id: req-416f2d4c-4d05-431e-87ec-ec008e91345d +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "7802d230-278c-4ad5-a7b5-bfd9808d1aa9", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9", "rel": "self"}, {"href": "http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/ports", "rel": "self"}, {"href": "http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/volume", "rel": "self"}, {"href": "http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/states", "rel": "self"}, {"href": "http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9 {} +GOT:{'uuid': '7802d230-278c-4ad5-a7b5-bfd9808d1aa9', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9', 'rel': 'self'}, {'href': 'http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7802d230-278c-4ad5-a7b5-bfd9808d1aa9/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '9771a0e9-9f92-4868-9026-c1aaf225a41c', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/9771a0e9-9f92-4868-9026-c1aaf225a41c +Openstack-Request-Id: req-3d89ef3d-b393-4dc1-955c-44105d451fae +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "9771a0e9-9f92-4868-9026-c1aaf225a41c", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c", "rel": "self"}, {"href": "http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/ports", "rel": "self"}, {"href": "http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/volume", "rel": "self"}, {"href": "http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/states", "rel": "self"}, {"href": "http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c {} +GOT:{'uuid': '9771a0e9-9f92-4868-9026-c1aaf225a41c', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c', 'rel': 'self'}, {'href': 'http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9771a0e9-9f92-4868-9026-c1aaf225a41c/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': 'ecfd0e34-5cc7-4e87-9d6d-46fc203edee5', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5 +Openstack-Request-Id: req-808836eb-916e-40b8-8285-db8a5e01fd93 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "ecfd0e34-5cc7-4e87-9d6d-46fc203edee5", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5", "rel": "self"}, {"href": "http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/ports", "rel": "self"}, {"href": "http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/volume", "rel": "self"}, {"href": "http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/states", "rel": "self"}, {"href": "http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5 {} +GOT:{'uuid': 'ecfd0e34-5cc7-4e87-9d6d-46fc203edee5', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ecfd0e34-5cc7-4e87-9d6d-46fc203edee5/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '793dfcda-92c5-4e6e-b3cc-051b09b89caa', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/793dfcda-92c5-4e6e-b3cc-051b09b89caa +Openstack-Request-Id: req-3e7f43c6-7b33-4c46-97ac-3d6416a3398d +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "793dfcda-92c5-4e6e-b3cc-051b09b89caa", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa", "rel": "self"}, {"href": "http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/ports", "rel": "self"}, {"href": "http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/volume", "rel": "self"}, {"href": "http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/states", "rel": "self"}, {"href": "http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa {} +GOT:{'uuid': '793dfcda-92c5-4e6e-b3cc-051b09b89caa', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa', 'rel': 'self'}, {'href': 'http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/793dfcda-92c5-4e6e-b3cc-051b09b89caa/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': 'ca4ae257-a485-4acb-8cfb-09d3b0be891a', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/ca4ae257-a485-4acb-8cfb-09d3b0be891a +Openstack-Request-Id: req-c656d200-2a11-4e10-b4ef-2f353747cdbf +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "ca4ae257-a485-4acb-8cfb-09d3b0be891a", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a", "rel": "self"}, {"href": "http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/states", "rel": "self"}, {"href": "http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a {} +GOT:{'uuid': 'ca4ae257-a485-4acb-8cfb-09d3b0be891a', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca4ae257-a485-4acb-8cfb-09d3b0be891a/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '99ad8001-d54d-47bd-91dd-eba57b030a87', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/99ad8001-d54d-47bd-91dd-eba57b030a87 +Openstack-Request-Id: req-0a4b1468-9e4d-40fc-82be-9e975185a1e7 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "99ad8001-d54d-47bd-91dd-eba57b030a87", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87", "rel": "self"}, {"href": "http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/ports", "rel": "self"}, {"href": "http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/volume", "rel": "self"}, {"href": "http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/states", "rel": "self"}, {"href": "http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87 {} +GOT:{'uuid': '99ad8001-d54d-47bd-91dd-eba57b030a87', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87', 'rel': 'self'}, {'href': 'http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/99ad8001-d54d-47bd-91dd-eba57b030a87/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '77cabf10-b872-4cf6-a8cd-f7f4452b8014', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014 +Openstack-Request-Id: req-09f4aa65-ffb4-4cf7-a092-4d2a5447b5e6 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "77cabf10-b872-4cf6-a8cd-f7f4452b8014", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014", "rel": "self"}, {"href": "http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/ports", "rel": "self"}, {"href": "http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/volume", "rel": "self"}, {"href": "http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/states", "rel": "self"}, {"href": "http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014 {} +GOT:{'uuid': '77cabf10-b872-4cf6-a8cd-f7f4452b8014', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014', 'rel': 'self'}, {'href': 'http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/77cabf10-b872-4cf6-a8cd-f7f4452b8014/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '8c20f9ec-c76e-4be7-8be7-3f15306f59b8', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/8c20f9ec-c76e-4be7-8be7-3f15306f59b8 +Openstack-Request-Id: req-5a4147e9-bb6c-468d-9602-485373a36470 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "8c20f9ec-c76e-4be7-8be7-3f15306f59b8", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8", "rel": "self"}, {"href": "http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/ports", "rel": "self"}, {"href": "http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/volume", "rel": "self"}, {"href": "http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/states", "rel": "self"}, {"href": "http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8 {} +GOT:{'uuid': '8c20f9ec-c76e-4be7-8be7-3f15306f59b8', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8c20f9ec-c76e-4be7-8be7-3f15306f59b8/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': '8e139916-f24d-4ee4-8d4e-356e73ed4a8c', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/8e139916-f24d-4ee4-8d4e-356e73ed4a8c +Openstack-Request-Id: req-063ee30c-00e7-4515-be61-f2e77af2f72a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "8e139916-f24d-4ee4-8d4e-356e73ed4a8c", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c", "rel": "self"}, {"href": "http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/ports", "rel": "self"}, {"href": "http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/volume", "rel": "self"}, {"href": "http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/states", "rel": "self"}, {"href": "http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c {} +GOT:{'uuid': '8e139916-f24d-4ee4-8d4e-356e73ed4a8c', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e139916-f24d-4ee4-8d4e-356e73ed4a8c/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes {'name': None, 'uuid': 'bf531193-e4af-4a65-9e12-0043743e5e8b', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/bf531193-e4af-4a65-9e12-0043743e5e8b +Openstack-Request-Id: req-86e0aca3-f6dc-443e-8acd-ee3dd9a1201c +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "bf531193-e4af-4a65-9e12-0043743e5e8b", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b", "rel": "self"}, {"href": "http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/ports", "rel": "self"}, {"href": "http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/volume", "rel": "self"}, {"href": "http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/states", "rel": "self"}, {"href": "http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b {}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.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_node.TestPut.test_abort_cleanwait +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_change_when_being_cleaned ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_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_node.TestPut.test_provision_locked_with_correct_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states ... 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 -GET: /v1/ports/2e3d25b0-7c1a-43d2-9960-aca79fb81f7d {} -GOT:{'uuid': '2e3d25b0-7c1a-43d2-9960-aca79fb81f7d', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/2e3d25b0-7c1a-43d2-9960-aca79fb81f7d', 'rel': 'self'}, {'href': 'http://foo/ports/2e3d25b0-7c1a-43d2-9960-aca79fb81f7d', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.096333+00:00', 'updated_at': None} -GET: /ports/2e3d25b0-7c1a-43d2-9960-aca79fb81f7d {} -GOT:{'uuid': '2e3d25b0-7c1a-43d2-9960-aca79fb81f7d', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/2e3d25b0-7c1a-43d2-9960-aca79fb81f7d', 'rel': 'self'}, {'href': 'http://foo/ports/2e3d25b0-7c1a-43d2-9960-aca79fb81f7d', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.096333+00:00', 'updated_at': None} -GET: /v1/ports?sort_key=foo {} +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-d78f6b33-1428-408a-b163-f2fe10e97e18 +Openstack-Request-Id: req-d50de2f4-fcfd-4b28-ab61-90ea2d282a1e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/ports?sort_key=extra {} +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-46ae3017-69b8-4b89-9d38-4cd5593a641e +Openstack-Request-Id: req-7994ecb1-e917-440a-9b1b-59a5f6fbb963 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/ports?sort_key=internal_info {} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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-c288b82e-00ad-4e55-aaec-036dd60a1b0d +Openstack-Request-Id: req-13d42417-a183-4683-aac5-e5bb5ee473d9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value internal_info is an invalid field for sorting\", \"debuginfo\": null}"} -GET: /v1/ports?sort_key=local_link_connection {} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The 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': 'provide'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-b5b8481a-ca20-4b82-be04-0fc8c494a156 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-005940b5-4909-4e59-ac71-a1e594e2ef33 +Openstack-Request-Id: req-ecee1888-90b3-4cba-b160-07febdfbb082 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value local_link_connection is an invalid field for sorting\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] +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'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-454bddb5-bb24-436a-9f1d-944dd48459f3 +Openstack-Request-Id: req-755fcb8f-37dc-4f41-9c56-5b4cae505163 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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/management/boot_device?persistent=True {'boot_device': 'pxe'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-f0d105dc-da84-47e4-b44b-96a1f84b969d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} -PATCH: /v1/ports/c8436fcb-d513-497c-8655-091427ece22a [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK + +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-dcb39792-2c91-4a91-add0-f3da9973bb07 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.5 + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-0fc352fe-51df-4ed3-b18b-5a7b63d3f61a +Openstack-Request-Id: req-7943ed35-f5da-4b95-94c0-788f4dbc1815 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "c8436fcb-d513-497c-8655-091427ece22a", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/c8436fcb-d513-497c-8655-091427ece22a", "rel": "self"}, {"href": "http://localhost/ports/c8436fcb-d513-497c-8655-091427ece22a", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.713781+00:00", "updated_at": "2023-01-07T00:10:10.799855+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': False, 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.36 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/ports {} +GOT:{'ports': [{'uuid': '3b5dddde-5eec-43ea-8110-90c54bd78d67', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/3b5dddde-5eec-43ea-8110-90c54bd78d67', 'rel': 'self'}, {'href': 'http://localhost/ports/3b5dddde-5eec-43ea-8110-90c54bd78d67', 'rel': 'bookmark'}]}, {'uuid': '5a1e377b-8551-42b8-be3b-8edebbd7964b', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/5a1e377b-8551-42b8-be3b-8edebbd7964b', 'rel': 'self'}, {'href': 'http://localhost/ports/5a1e377b-8551-42b8-be3b-8edebbd7964b', 'rel': 'bookmark'}]}, {'uuid': '153ef2d1-c021-4c75-9570-2ff4843fb186', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/153ef2d1-c021-4c75-9570-2ff4843fb186', 'rel': 'self'}, {'href': 'http://localhost/ports/153ef2d1-c021-4c75-9570-2ff4843fb186', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=3&marker=153ef2d1-c021-4c75-9570-2ff4843fb186'} +GET: /v1/ports {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} +GET: /v1/ports?detail=False {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6e4c3c36-9fb1-41d6-9033-a232436084fb +Openstack-Request-Id: req-522400e4-ae93-4322-bac0-dfcb6fb183cb X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/ports/bef2d033-b915-4d1d-8fc3-8b8a2366cc71 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +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-5e6e6d1e-cf63-4106-8cce-e2697b2997f0 +Openstack-Request-Id: req-041d8ec2-5d77-4859-ba34-854f512875ea X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port bef2d033-b915-4d1d-8fc3-8b8a2366cc71 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 500 Internal Server Error +X-Openstack-Ironic-Api-Version: 1.34 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142 {} +GOT:{'uuid': 'cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'self'}, {'href': 'http://localhost/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.231889+00:00', 'updated_at': None} +GET: /v1/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142 {} +GOT:{'uuid': 'cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'self'}, {'href': 'http://localhost/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.231889+00:00', 'updated_at': None} +GET: /ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142 {} +GOT:{'uuid': 'cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'self'}, {'href': 'http://localhost/ports/cd5b3498-e968-47a5-85f1-0d1ea57fc142', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:02.231889+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_url ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove_add ... ok +ironic.tests.unit.api.controllers.v1.test_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_port.TestPost.test_create_port_vif_nopxe_noportgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup ... ok +ironic.tests.unit.api.controllers.v1.test_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_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields ... 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.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_power_state_error_handler_other_error ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_prepare_clean_wait ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old ... 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 + +GET: /v1/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28 {} +GOT:{'uuid': '5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'self'}, {'href': 'http://foo/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:08.634143+00:00', 'updated_at': None} +GET: /v1/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28 {} +GOT:{'uuid': '5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'self'}, {'href': 'http://foo/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:08.634143+00:00', 'updated_at': None} +GET: /ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28 {} +GOT:{'uuid': '5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'self'}, {'href': 'http://foo/ports/5aeea428-cb7c-41b6-99b8-9dbd482d0a28', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:08.634143+00:00', 'updated_at': None} +GET: /v1/ports?sort_key=uuid {} +GOT:{'ports': [{'uuid': '1ccd0c3d-bc8b-417b-81f5-683e0740e116', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1ccd0c3d-bc8b-417b-81f5-683e0740e116', 'rel': 'self'}, {'href': 'http://localhost/ports/1ccd0c3d-bc8b-417b-81f5-683e0740e116', 'rel': 'bookmark'}]}, {'uuid': '38a65a47-c6c2-4139-8920-6edbf5dab0f8', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/38a65a47-c6c2-4139-8920-6edbf5dab0f8', 'rel': 'self'}, {'href': 'http://localhost/ports/38a65a47-c6c2-4139-8920-6edbf5dab0f8', 'rel': 'bookmark'}]}, {'uuid': '6734236d-bcef-42db-9e5a-b28463107ac6', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/6734236d-bcef-42db-9e5a-b28463107ac6', 'rel': 'self'}, {'href': 'http://localhost/ports/6734236d-bcef-42db-9e5a-b28463107ac6', 'rel': 'bookmark'}]}]} +GET: /v1/ports?sort_key=pxe_enabled {} +GOT:{'ports': [{'uuid': '2ca7944b-a92d-4826-b549-c05702e6aa9a', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/2ca7944b-a92d-4826-b549-c05702e6aa9a', 'rel': 'self'}, {'href': 'http://localhost/ports/2ca7944b-a92d-4826-b549-c05702e6aa9a', 'rel': 'bookmark'}]}, {'uuid': 'e9f17110-d42b-4353-b8ec-da510dd9b74e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/e9f17110-d42b-4353-b8ec-da510dd9b74e', 'rel': 'self'}, {'href': 'http://localhost/ports/e9f17110-d42b-4353-b8ec-da510dd9b74e', 'rel': 'bookmark'}]}]} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'eecbf5f9-57f8-4481-9be5-ea78c27fb191', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '1c26aa5a-1872-4f46-8cf9-bd513310d8f7', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0b1b4370-4be1-42a0-aa9f-f7b06ceb7ba7 +Openstack-Request-Id: req-6ee73e77-80e5-4475-9936-e61d26d53642 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.24 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "1c26aa5a-1872-4f46-8cf9-bd513310d8f7", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:08.864077+00:00", "updated_at": "2021-12-04T17:54:08.912979+00:00"} +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-43d6b5be-bbf0-46ff-8103-3124716b7d5c +Openstack-Request-Id: req-aa89cc74-abeb-4304-a846-8ecbd3161968 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 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': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:08.953237+00:00", "updated_at": "2021-12-04T17:54:08.988340+00:00"} +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '6cdb5b3d-b8c3-4953-8239-ac00e984743b'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, '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-1179e599-1136-4b75-b612-3ee768294940 +Openstack-Request-Id: req-677c2df3-0410-4151-8d5f-d39311218e02 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.955943+00:00", "updated_at": null}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_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_node_uuid_to_node_id_mapping ... ok -ironic.tests.unit.api.controllers.v1.test_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_portgroup.TestListPortgroups.test_portgroup_by_address -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ... ok -ironic.tests.unit.api.controllers.v1.test_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_types.TestLocalLinkConnectionType.test_local_link_connection_type_without_optional_key -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_without_optional_key ... ok +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "6cdb5b3d-b8c3-4953-8239-ac00e984743b"}, "internal_info": {"tenant_vif_port_id": "6cdb5b3d-b8c3-4953-8239-ac00e984743b"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:09.060956+00:00", "updated_at": null} +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/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'}]} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-262bdc7e-86f6-4542-b5df-039ec47e9e4c +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": 123}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:09.243711+00:00", "updated_at": null}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_root.TestCheckVersions.test_check_version_invalid_major_version +ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_invalid_major_version ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value +ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_replace_with_no_value ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_invalid_values +ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_invalid_values ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestListType.test_list_type +ironic.tests.unit.api.controllers.v1.test_types.TestListType.test_list_type ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type +ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid +ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid ... ok ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs_fail +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_abort_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_false ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_false ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_subpath_success ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait ... 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_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_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_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_default_limit ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_resource_class ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_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.TestNodeIdent.test_get_rpc_node_expect_uuid +ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned ... ok +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_type_value_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_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_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields ... 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +GOT:{'uuid': 'bf531193-e4af-4a65-9e12-0043743e5e8b', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b', 'rel': 'self'}, {'href': 'http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/bf531193-e4af-4a65-9e12-0043743e5e8b/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} +POST: /v1/nodes/node-109/vendor_passthru/test {'foo': 'bar'} +GOT:Response: 202 Accepted Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-e5199cec-a28a-431c-99e6-4599344a006f +Openstack-Request-Id: req-266dc333-ea57-415f-827f-7326949aaeb7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.835380+00:00", "updated_at": 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, '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-442ac8ea-9a03-4e07-82d1-703d1b61aae0 +X-Openstack-Ironic-Api-Version: 1.5 +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-0ac6e0ff-88bc-4e5b-a0f1-41e750500d85 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: /v1/portgroups?detail=True {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:11.205300+00:00', 'updated_at': None}]} -GET: /v1/portgroups?detail=True&fields=name {} +X-Openstack-Ironic-Api-Version: 1.13 + +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-35c9d528-fb2b-4253-8e06-1307222732e8 +Openstack-Request-Id: req-52596ad5-8095-44a0-9028-3d2f06a6f93b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} -GET: /v1/portgroups?node=test-node {} -GOT:{'portgroups': [{'uuid': '78513785-0ebc-40bc-a56f-a671cbd3a03f', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/78513785-0ebc-40bc-a56f-a671cbd3a03f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/78513785-0ebc-40bc-a56f-a671cbd3a03f', 'rel': 'bookmark'}]}, {'uuid': '534a16fd-a318-4170-a613-40fe5c17f588', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/534a16fd-a318-4170-a613-40fe5c17f588', 'rel': 'self'}, {'href': 'http://localhost/portgroups/534a16fd-a318-4170-a613-40fe5c17f588', 'rel': 'bookmark'}]}, {'uuid': '84fb9112-a4a9-4caa-ae61-6476934cb335', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/84fb9112-a4a9-4caa-ae61-6476934cb335', 'rel': 'self'}, {'href': 'http://localhost/portgroups/84fb9112-a4a9-4caa-ae61-6476934cb335', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?address=invalid-mac-format {} +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-28913f09-fae0-4c59-95f2-b9faa9a38173 +Openstack-Request-Id: req-abb1eea9-2ce2-45b4-b43c-c672da4f2548 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute address. Value: 'invalid-mac-format'. unable to convert to macaddress. Error: Expected a MAC address but received invalid-mac-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', 'internal_info': 'info'} +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': 'soft power off', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c433b085-4479-4126-8652-5be28f01bc15 +Openstack-Request-Id: req-6d3138ae-69ac-4064-9ccf-06971e077278 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute portgroup. Value: '{'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'}'. Value not a valid dict: info\", \"debuginfo\": null}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': 'invalid-format'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.27 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"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-ef1a4364-9ab2-43a0-bfa1-52a0bb891e32 +Openstack-Request-Id: req-e8807474-e4bb-4c1e-942f-0590111aa9f9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received invalid-format.\", \"debuginfo\": null}"} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} -GOT:Response: 404 Not Found +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': 'unrescue'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-2c3ee726-ddcb-4ea4-807a-80c1dca5c54b +Openstack-Request-Id: req-11459c43-0831-41ee-8f04-0fedd35726d9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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 +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-e7da3204-fcfc-41c2-87ce-b07f233e4e54 +Openstack-Request-Id: req-14ea7235-aa4b-4545-9088-5381501632da X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:13.267648+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one ... ok -ironic.tests.unit.api.controllers.v1.test_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_volume_connector.TestPatch.test_add_node_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_non_existent_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_all_by_node_name_ok ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid ... ok -ironic.tests.unit.api.test_acl.TestACL.test_authenticated -ironic.tests.unit.api.test_acl.TestACL.test_authenticated ... ok -ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions -ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions ... 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.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros -ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros ... ok -ironic.tests.unit.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.common.test_context.RequestContextTestCase.test_thread_without_context -ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context ... ok -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported ... ok -ironic.tests.unit.common.test_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.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise -ironic.tests.unit.common.test_exception.TestIronicException.test___init___invalid_kwarg_reraise ... 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_glance_service.CheckImageServiceTestCase.test_check_image_service__deprecated_opts -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__deprecated_opts ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_passes_through_to_client ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail ... ok -ironic.tests.unit.common.test_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_rfc_822 -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 ... ok -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url -ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_mkisofs_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_mkisofs_fails ... 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.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_ports_int_info ... ok -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context ... ok -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_out_range_auth_strategy -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_out_range_auth_strategy ... 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.TestUpdatePortAddress.test_update_port_address -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... ok -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_ipxe_config_uefi -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_ipxe_config_uefi ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config ... ok -ironic.tests.unit.common.test_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_swift.SwiftTestCase.test___init__ -ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object_throws_for_invalid_or_unsupported_hash_name ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_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_unix_file_modification_datetime -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_warn_about_deprecated_extra_vif_port_id ... ok -ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_success -ironic.tests.unit.conductor.test_base_manager.CheckInterfacesTestCase.test__check_enabled_interfaces_success ... 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.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_spawn_fail ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_adopt_failed_no_power_change ... ok -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_locked ... ok -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_unset_deploy_step -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__get_node_next_deploy_steps_unset_deploy_step ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_adopt_node_retry ... ok -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_do_provisioning_action_manage_of_failed_adoption ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_steps_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_skip_step -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_skip_step ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_worker_pool_full ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_configdrive_db_error ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps ... ok -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_return_failed ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_ok_with_console ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_exiting_with_other_exception ... 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.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_maintenance_on_upgrade_lock ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ... ok -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp ... ok -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspect_wait ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty ... ok -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config_iface_not_supported ... ok -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_power_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive -ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive ... 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.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_no_previous_value ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node ... ok -ironic.tests.unit.conductor.test_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.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_validation_failed ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_portgroup_physnet_inconsistent ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error ... 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.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.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.TaskManagerTestCase.test_shared_lock_build_driver_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ... ok -ironic.tests.unit.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.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.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled ... ok -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state ... ok -ironic.tests.unit.conductor.test_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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_3 ... ok -ironic.tests.unit.conductor.test_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.conf.test_auth.AuthConfTestCase.test_add_auth_opts -ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_missing_version_columns ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht ... ok -ironic.tests.unit.db.test_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_conductor_not_found -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found ... 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.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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait ... ok -ironic.tests.unit.db.test_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_nodes.DbNodeTestCase.test_create_node_already_exists -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ... 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.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.db.test_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.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address -ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address ... 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.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.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.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.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device_fail -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device_fail ... 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.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.drac.test_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.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.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.drac.test_power.DracPowerTestCase.test_set_power_state_timeout -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout ... ok -ironic.tests.unit.drivers.modules.drac.test_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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration ... 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_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_console.IloConsoleInterfaceTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__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_fw_img_loc_sets_these_attributes -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_true ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.ilo.test_power.IloPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__get_mac_addresses ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_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.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_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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id_portgroup -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_provisioning_network_set_binding_host_id_portgroup ... 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_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.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.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_server_hardware_type -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_server_hardware_type ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_with_automated_clean_disabled -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_with_automated_clean_disabled ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_active_node -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_active_node ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__add_applied_server_profile_uri_field -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__add_applied_server_profile_uri_field ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_same_server_profile_applied -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_same_server_profile_applied ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_not_persistent -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_not_persistent ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_soft_reboot -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_soft_reboot ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_partition_image -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_partition_image ... 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_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_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_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_with_neutron_net_exc_no_capabilities_overwrite -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities_overwrite ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_uefi -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_uefi ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps -ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps ... 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_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__stop_console_exception -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id -ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_wo_boot_option_and_wo_boot_mode -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_wo_boot_option_and_wo_boot_mode ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot ... 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.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_image ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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_nonglance_image_validation_fail -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image_validation_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.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_master_path_if_stale_glance_img -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img ... ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok ... ok -ironic.tests.unit.drivers.modules.test_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_iscsi_deploy.ISCSIDeployTestCase.test_clean_up -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_clean_up ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot ... 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_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_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_pass -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_pass ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_two -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_two ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch ... 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.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu ... ok - -GOT:Response: 400 Bad Request +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-22656d2b-bf32-4b0a-a060-2a0b54d84e0f +Openstack-Request-Id: req-88a890d4-a64b-4532-85ab-a1c7a567dd62 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.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-e1c722cd-6f97-47da-9fd4-c133fe13458d +Openstack-Request-Id: req-dda6799c-ff38-4a84-bf4c-41ebec997f52 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.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-3ebaabdc-cd66-48c1-b988-4bd03516e7c2 +Openstack-Request-Id: req-89a2294e-8b19-42df-afa6-03a63f6cffab X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 100, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:13.561618+00:00", "updated_at": null} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-32b9ce4d-9dcd-446a-b780-c4845412ec92 +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/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-24aa10e6-cc1b-4d62-92a3-a198b239b5d8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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: baremetal:node:get\", \"debuginfo\": null}"} -foo() migrated 15 of 15 objects. -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_snmp_auto_cache_supports_pdu_replacement ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_port.TestDelete.test_delete_port_byaddress +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_deprecated +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_extra_vif_port_id_deprecated ... 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_port.TestPost.test_create_port_address_already_exist +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_address_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_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_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.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_change_node_power_state ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_3 ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on ... ok -POST: /v1/nodes {'name': None, 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 0} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:09.243711+00:00', 'updated_at': None} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-12a0f566-d670-4929-b39c-d593f9d4c5be +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:24.064936+00:00", "updated_at": null} +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-da1b5e9c-3054-4b43-88db-96643fe3cd10 +Openstack-Request-Id: req-2d457d7f-376c-4996-83c9-8b4e6aba1290 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 0.\", \"debuginfo\": null}"} -POST: /v1/nodes {'name': '', 'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"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-75c2b1da-b908-496a-bcf5-b6b940a31974 +Openstack-Request-Id: req-82e2cc2f-4174-4960-be81-61ce2c583591 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/management/inject_nmi {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:25.621155+00:00", "updated_at": "2021-12-04T17:54:25.643488+00:00"} +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-8468a0af-cc3f-4bdb-9e5b-8879090996f8 +Openstack-Request-Id: req-24dc4a30-53a9-4a93-be0e-07e37a4d8caa X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/node-39/states/power {'target': 'power on'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/node-39/states -Openstack-Request-Id: req-8fab46e7-12ae-4cd6-aee8-c994b7b3dd20 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:25.621155+00:00", "updated_at": "2021-12-04T17:54:25.643488+00:00"} +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-2bfe6a11-4238-42d3-a4a0-929485edda85 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off', 'timeout': 2} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:26.496439+00:00", "updated_at": null} +POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-1d8c9caa-a7ae-45ed-8d01-b324378956f2 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-733d72a6-aa92-4754-97d3-460a061ae4ac X-Openstack-Ironic-Api-Maximum-Version: 1.46 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-6a1d78a8-7af9-4c89-bb47-bdc924068d0a +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-456", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:27.413660+00:00", "updated_at": null} +POST: /v1/volume/connectors {'uuid': 'a57d82ae-8b19-45f0-a43f-ff94989daf37', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Request-Id: req-64e5540f-1f3a-4701-959a-65afdcdcb0ae X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"} +GET: /v1/volume/targets?detail=False {} +GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': '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?fields=uuid,extra {} +GOT:{'targets': [{'uuid': 'b492473f-85f6-4930-aa88-b6a0b79a2061', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/b492473f-85f6-4930-aa88-b6a0b79a2061', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b492473f-85f6-4930-aa88-b6a0b79a2061', 'rel': 'bookmark'}]}, {'uuid': 'bbf81647-11b8-45b9-8a43-403980f708b9', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/bbf81647-11b8-45b9-8a43-403980f708b9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/bbf81647-11b8-45b9-8a43-403980f708b9', 'rel': 'bookmark'}]}, {'uuid': 'e838bb57-2113-418d-922d-e0c7500586c0', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/e838bb57-2113-418d-922d-e0c7500586c0', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e838bb57-2113-418d-922d-e0c7500586c0', 'rel': 'bookmark'}]}]} +GET: /v1/volume/targets {} +GOT:{'targets': [{'uuid': '62a19052-a835-470a-9d11-f64013efd949', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/62a19052-a835-470a-9d11-f64013efd949', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/62a19052-a835-470a-9d11-f64013efd949', 'rel': 'bookmark'}]}, {'uuid': '6246c139-c484-4597-a974-d98653b0b6d6', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/6246c139-c484-4597-a974-d98653b0b6d6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6246c139-c484-4597-a974-d98653b0b6d6', 'rel': 'bookmark'}]}, {'uuid': '13c8a3ec-3c39-4fad-bc3a-90ec19c01503', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/13c8a3ec-3c39-4fad-bc3a-90ec19c01503', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/13c8a3ec-3c39-4fad-bc3a-90ec19c01503', 'rel': 'bookmark'}]}, {'uuid': 'f44c49ab-1d4e-46a7-b58b-ae264a5fcd72', 'volume_type': 'iscsi', 'boot_index': 3, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/f44c49ab-1d4e-46a7-b58b-ae264a5fcd72', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f44c49ab-1d4e-46a7-b58b-ae264a5fcd72', 'rel': 'bookmark'}]}, {'uuid': '4157be40-4406-48be-8583-a98d5b7e3dbf', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4157be40-4406-48be-8583-a98d5b7e3dbf', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4157be40-4406-48be-8583-a98d5b7e3dbf', 'rel': 'bookmark'}]}]}ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_no_worker ... ok +ironic.tests.unit.drivers.modules.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.redfish.test_power.RedfishPowerTestCase.test_reboot_fail +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail ... 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.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.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_validate_fail ... ok -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} +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-d505cfbc-a3fe-4349-ac53-8d2381a179dd +Openstack-Request-Id: req-c19b8e80-2946-42cd-858f-533b9c924f54 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 +X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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-c2c99f51-c5db-4b65-9e7e-509e2b1c65b1 +DELETE: /v1/nodes/node-39/traits +GOT:Response: 204 No Content +Openstack-Request-Id: req-c1bcba7b-1750-4d71-81da-5365f38133d6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 +X-Openstack-Ironic-Api-Version: 1.37 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} +DELETE: /v1/ports/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-214ba72d-35f3-48fe-a447-1b4a22bf843f +Openstack-Request-Id: req-bfd0b6e9-0cc3-412f-84b0-12a609591f82 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"enabled\\\"\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'true'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute port_uuid. Value: '52:54:00:cf:2d:31'. unable to convert to uuid. Error: Expected a UUID but received 52:54:00:cf:2d:31.\", \"debuginfo\": null}"} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:23.599377+00:00', 'updated_at': None} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, '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'}], 'created_at': '2021-12-04T17:54:23.599377+00:00', 'updated_at': None} +GET: /v1/ports/detail {} +GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:24.522031+00:00', 'updated_at': None}]} +GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} +GOT:{'ports': [{'uuid': '32a45472-1aaa-4ff7-8275-3a4dd1d28376', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/32a45472-1aaa-4ff7-8275-3a4dd1d28376', 'rel': 'self'}, {'href': 'http://localhost/ports/32a45472-1aaa-4ff7-8275-3a4dd1d28376', 'rel': 'bookmark'}]}]} +PATCH: /v1/ports/10510fd5-9079-45da-833c-f9e5d6d63352 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-92d64f0d-4bd1-4096-aef1-461c48511360 +Openstack-Request-Id: req-b12325e5-3b78-4722-9ec1-71b48fccc2ab X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/maintenance {'reason': 'fake_reason'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-ea3eca1e-bb8c-42ac-9123-0d138346a4ec +X-Openstack-Ironic-Api-Version: 1.34 +{"uuid": "10510fd5-9079-45da-833c-f9e5d6d63352", "address": "52:55:00:cf:2d:31", "extra": {"vif_port_id": "bar"}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/10510fd5-9079-45da-833c-f9e5d6d63352", "rel": "self"}, {"href": "http://localhost/ports/10510fd5-9079-45da-833c-f9e5d6d63352", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:26.143413+00:00", "updated_at": "2021-12-04T17:54:26.498569+00:00"} +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-040d29c4-494e-447c-b0e7-6a254ae09c1f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 - -DELETE: /v1/nodes/node-39/traits/CUSTOM_1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} +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, '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-20a06a90-c4a5-4501-a166-1090c35e9124 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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}"} -GET: /v1/nodes/badname/traits {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d7816f33-0437-47de-9c84-1b2d00234ed2 +Openstack-Request-Id: req-7566024e-d42c-475e-a533-304b737c129b X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.46 +{"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': '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, 'node_uuid': '1939f571-0536-456a-a758-15b7dd426e7e', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-468c7d3f-916e-44b1-a16d-40249e161dd5 +Openstack-Request-Id: req-4a1aa5ae-95e3-400f-93f9-8a4c768a44aa X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -GET: /v1/ports?node=test-node {} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1939f571-0536-456a-a758-15b7dd426e7e 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, '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-a4c4c403-a956-4ac3-988c-fff4818eeb8b +Openstack-Request-Id: req-3a0fcb05-5b6c-4e9e-bf04-dfd97d75a3d3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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?portgroup=fooname {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.350796+00:00', 'updated_at': None}]} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:10.511074+00:00', 'updated_at': None}ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_port.TestPost.test_create_port_local_link_connection_missing_optional -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup ... ok -ironic.tests.unit.drivers.modules.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.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ... ok -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm_fail -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm_fail ... 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_reset_off_snmp_get_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure ... ok +GET: /v1/portgroups/?limit=3 {} +GOT:{'portgroups': [{'uuid': 'd7d7eeed-cf73-490a-89ae-9eeeac76ab6e', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/d7d7eeed-cf73-490a-89ae-9eeeac76ab6e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d7d7eeed-cf73-490a-89ae-9eeeac76ab6e', 'rel': 'bookmark'}]}, {'uuid': 'c64ebb4d-57cc-4a46-825d-b8af4d064d68', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/c64ebb4d-57cc-4a46-825d-b8af4d064d68', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c64ebb4d-57cc-4a46-825d-b8af4d064d68', 'rel': 'bookmark'}]}, {'uuid': '5f0ef356-7d24-4dc7-af5b-2bc637b9a8c9', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/5f0ef356-7d24-4dc7-af5b-2bc637b9a8c9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5f0ef356-7d24-4dc7-af5b-2bc637b9a8c9', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=3&marker=5f0ef356-7d24-4dc7-af5b-2bc637b9a8c9'}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.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_cyberpower_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_state_off ... 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.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_resume_clean_fails ... ok +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort_last_clean_step ... ok +ironic.tests.unit.api.controllers.v1.test_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.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.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation ... ok +ironic.tests.unit.conductor.test_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.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.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_version_mismatch ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_with_reservation ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ... ok +ironic.tests.unit.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.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_node_uuid_to_node_id_mapping ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_maintenance_set_false ... ok +ironic.tests.unit.drivers.modules.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.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.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ... 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.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled +ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_cancelled ... ok +ironic.tests.unit.api.controllers.v1.test_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.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_type +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_type ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin ... 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.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_active_state_and_maintenance ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ... ok +ironic.tests.unit.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_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.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.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_unknown_exc ... 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.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_instance_info_priority ... 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.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_node_power_on ... ok +ironic.tests.unit.conductor.test_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.controllers.v1.test_portgroup.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi ... 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_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.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check +ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ... 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.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered ... 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.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.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot ... 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.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.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.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_unexpected_exception ... ok +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none ... 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.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot ... ok +ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request +ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_missing_prop ... ok +ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request +ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_method_not_supported ... ok +ironic.tests.unit.drivers.modules.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.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi ... ok +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id +ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id ... ok +ironic.tests.unit.drivers.modules.test_agent.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.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__old_rest_of_do_node_deploy_has_steps ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value +ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value ... 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.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_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.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled +ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps_only_enabled ... ok +ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_missing_mandatory_key +ironic.tests.unit.api.controllers.v1.test_types.TestVifType.test_vif_type_missing_mandatory_key ... 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.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.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async ... ok +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps +ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_steps ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_none +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_none ... 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.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ... ok +ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test_set_node_deployment_steps +ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test_set_node_deployment_steps ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_none +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group_none ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy ... 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.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_inspect_verbs ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_verify_and_update +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_verify_and_update ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ... ok +ironic.tests.unit.conductor.test_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.test_agent.TestAgentDeploy.test_deploy_is_done_still_running +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_still_running ... 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.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_disabled +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_disabled ... 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.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.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_unknown_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_unknown_verbs ... 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.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.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ... 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_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_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.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success ... ok +ironic.tests.unit.common.test_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.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.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_cleaning ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool ... ok +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on ... 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.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.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_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector ... 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.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.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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date ... ok +ironic.tests.unit.conductor.test_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.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance ... ok +ironic.tests.unit.drivers.modules.test_snmp.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_agent.TestAgentDeploy.test_prepare_cleaning +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ... 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.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.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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire ... ok +ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one ... ok +ironic.tests.unit.conductor.test_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.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit ... 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.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_agent.TestAgentDeploy.test_reboot_to_instance_localboot +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_localboot ... 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.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestVolumeConnectorObject.test_volume_connector_init ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ... ok +ironic.tests.unit.drivers.modules.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_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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.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.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ... ok +ironic.tests.unit.drivers.modules.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_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_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails ... 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.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake ... ok +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize +ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects ... 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.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_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.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception ... ok +ironic.tests.unit.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.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.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloaderi_with_prep +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloaderi_with_prep ... 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.SNMPDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_refresh +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_refresh ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test___set_and_wait_no_needless_status_polling ... ok +ironic.tests.unit.drivers.modules.test_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.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_uuid_inalid_type ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_db_not_in_sync ... ok +ironic.tests.unit.drivers.modules.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_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.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ... 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 -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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +GET: /v1/portgroups/detail?node=test-node {} +GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:30.437363+00:00', 'updated_at': None}]} +GET: /v1/portgroups?fields=uuid,extra {} +GOT:{'portgroups': [{'uuid': 'a63fb8e8-b584-4bb8-94ff-8cf164596f73', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/a63fb8e8-b584-4bb8-94ff-8cf164596f73', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a63fb8e8-b584-4bb8-94ff-8cf164596f73', 'rel': 'bookmark'}]}, {'uuid': '5bae6fa1-29ad-4133-a5b6-d3ea108e5ddd', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/5bae6fa1-29ad-4133-a5b6-d3ea108e5ddd', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5bae6fa1-29ad-4133-a5b6-d3ea108e5ddd', 'rel': 'bookmark'}]}, {'uuid': 'f4d4dc6e-c818-4e5e-914e-d6481e5b41a1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/f4d4dc6e-c818-4e5e-914e-d6481e5b41a1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f4d4dc6e-c818-4e5e-914e-d6481e5b41a1', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-bd71f5d6-c5cd-4db1-af5d-491b744172fe +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +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-7e2e0f7d-7560-43c5-960b-94e31cfbcf5c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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": null, "dict": {"cat": "meow"}}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.307046+00:00", "updated_at": null} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'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'}}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:11.307046+00:00', 'updated_at': None} -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/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} -GOT:Response: 406 Not Acceptable +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:33.029499+00:00", "updated_at": null} +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-f53db4ea-eb9c-4e4b-b09b-1e301f0c773b +Openstack-Request-Id: req-b7aa0705-8b6a-41e8-8433-0ea1f1395f55 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"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', '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-a72b99e5-35ed-40a2-8153-7fbdd026e9e1 +Openstack-Request-Id: req-50e9d624-3204-466a-858c-8001609ade7b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.903779+00:00", "updated_at": null} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'op': 'add', 'value': '802.3ad'}] -GOT:Response: 406 Not Acceptable +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:34.936298+00:00", "updated_at": "2021-12-04T17:54:34.959710+00:00"} +GET: /v1/volume/connectors?detail=True {} +GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:40.651553+00:00', 'updated_at': None}]} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:41.812995+00:00', 'updated_at': None} +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-f45e3031-5a66-4cbe-93e2-89df0a4a4ffa +Openstack-Request-Id: req-8e6316bf-b02c-4b72-b1b0-5529793c4d30 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.25 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/properties/abc', 'op': 'add', 'value': 123}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"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-37ac11e5-7af3-45b1-b297-b1d67abfb973 +Openstack-Request-Id: req-c18f31d9-ef58-4d4e-bd1f-11a0946966f6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.46 +{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:43.887124+00:00", "updated_at": null} +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 -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -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'} +Openstack-Request-Id: req-faa7e5de-e106-4292-bf7d-bde77d0b30e1 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"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'}ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch ... ok +ironic.tests.unit.api.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.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port_default ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_already_being_processed ... ok +ironic.tests.unit.drivers.modules.test_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.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.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_ephemeral ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_old ... ok +ironic.tests.unit.api.test_acl.TestACL.test_public_api +ironic.tests.unit.api.test_acl.TestACL.test_public_api ... ok +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console ... 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.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option ... ok +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot ... 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.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.IPMIToolSocatDriverTestCase.test_stop_console_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ... 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.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.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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_partition_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_partition_image ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ... ok +ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint +ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_clean_up +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_clean_up ... 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.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race ... ok +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_glance_partition_image ... ok +ironic.tests.unit.drivers.modules.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_neutron.TestNeutronNetworkActions.test_verify_sec_groups +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy_storage_check_write_image_false ... 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.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure ... ok +ironic.tests.unit.common.test_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.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... 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.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ... 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.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address_with_binding ... ok +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_second_arg ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active ... 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.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ... ok +ironic.tests.unit.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.common.test_neutron.TestValidateNetwork.test_duplicate +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... 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.test_base.TestBootInterface.test_validate_rescue_default_impl +ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ... ok +ironic.tests.unit.drivers.modules.test_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.common.test_context.RequestContextTestCase.test_to_policy_values +ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values ... 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_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_preserve_ephemeral ... 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.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step ... ok +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_already_exists ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_boot_option_default ... 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.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ... ok +ironic.tests.unit.common.test_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.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_service_profile +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_service_profile ... 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.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties ... 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.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ... ok +ironic.tests.unit.drivers.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.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_configured_defaults ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_tear_down_error ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ... ok +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace +ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_error +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_error ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ... ok +ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable +ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable ... 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.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean ... ok +ironic.tests.unit.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.test_fake_hardware.FakeHardwareTestCase.test_power_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... 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.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__link_ip_address_pxe_configs ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_url_bad_no_info ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_fails ... 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.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.test_generic.ManualManagementHardwareTestCase.test_get_properties +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties ... ok +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server_fail +ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_get_glance_api_server_fail ... ok +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception ... ok +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_active +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_active ... 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.db.test_portgroups.DbportgroupTestCase.test_update_portgroup +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url ... ok +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache +ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_remove_expired_items_from_cache ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios ... ok +ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps +ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps ... 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.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id ... ok +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_no_refresh +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_no_refresh ... ok +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect ... 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.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.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.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok ... ok +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ... 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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ... ok +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base ... 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.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.drivers.test_oneview.OneViewHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ... 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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active ... ok +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off_storage_detach ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_fs ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ... ok +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits ... 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.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.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_images.IronicImagesTestCase.test_download_size +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password ... ok +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook ... ok +ironic.tests.unit.conductor.test_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.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.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.objects.test_bios.TestBIOSSettingObject.test_get +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials ... ok +ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ... 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.common.test_keystone.KeystoneTestCase.test_get_service_auth +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth ... 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.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.test_utils.UtilsTestCase.test_force_persistent_boot_false +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false ... 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.objects.test_conductor.TestConductorObject.test_save +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ... ok +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... 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.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_ok ... 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.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.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.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.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ... 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.common.test_neutron.TestValidateNetwork.test_not_found +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_fail +ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_fail ... 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.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation +ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_nullable_translation ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure ... 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_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_deploying ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_deploy +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_deploy ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_ipxe_config_uefi +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_ipxe_config_uefi ... ok +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception +ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_execute_ironic_exception ... ok +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_imc_exception +ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_imc_exception ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source ... 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.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_protocol ... ok +ironic.tests.unit.objects.test_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_node.TestNodePayloads.test_node_crud_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down ... ok +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier +ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_notifier ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_execute_fail ... 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.objects.test_objects.TestObject.test_get_updates +ironic.tests.unit.objects.test_objects.TestObject.test_get_updates ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties +ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set +ironic.tests.unit.objects.test_objects.TestObject.test_obj_attr_is_set ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_md5_not_binary +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_md5_not_binary ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_supports_version +ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot ... ok +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_unix_file_modification_datetime ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_release +ironic.tests.unit.objects.test_node.TestNodeObject.test_release ... 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.common.test_utils.JinjaTemplatingTestCase.test_render_string +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_pass +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_pass ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_first_step_async ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low ... ok +ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly +ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ... ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ... ok +ironic.tests.unit.drivers.modules.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_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_three +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_three ... ok +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk_rescue ... 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_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_port.TestPortObject.test_supports_physical_network_supported +ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed ... 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.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing ... 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.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_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all +ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot ... 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.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_volume_connector.TestVolumeConnectorObject.test_get +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ... 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.objects.test_port.TestConvertToVersion.test_vif_in_extra +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ... 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.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.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_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_timeout +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_timeout ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid ... ok +The database is not compatible with this release of ironic (11.1.0). Please run "ironic-dbsync online_data_migrations" using the previous release. +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ... ok + +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-1936f0a4-0df3-4fdb-89cd-fb6951b6cdbd +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"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': 100, 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-e72c5e77-b256-4fa8-835b-f937569286fb +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 100, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:02.735022+00:00", "updated_at": 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/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-20f474d2-40d8-4cba-86af-84a3bf174058 +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-c12b2434-57b1-496d-ab58-e9cd5d32afda X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:12.445633+00:00", "updated_at": null} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': 'aa:bb:cc:dd:ee:ff', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:12.445633+00:00', 'updated_at': None} -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'} +{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} +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-5d7bf261-7815-425a-a1b1-40711f2622ee +Openstack-Request-Id: req-eafc630d-2e27-4e82-9c77-c36a62e656d7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 52-54-00-cf-2d-31.\", \"debuginfo\": null}"}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_ramdisk.TestHeartbeat.test_old_api_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high -ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_too_high ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_uuid -ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_valid_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid -ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_valid_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_conductor_group -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_conductor_group ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_fields_network_interface_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_remove ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi ... ok -ironic.tests.unit.api.controllers.v1.test_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_volume_connector.TestPost.test_create_volume_connector_generate_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_generate_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_api_version ... ok -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_address -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_address ... 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.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.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_service_profile -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_service_profile ... 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.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.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ... ok -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device_fail -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout ... ok -ironic.tests.unit.drivers.test_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_store_ramdisk_logs_swift -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ... ok -ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_default_interfaces ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} +GET: /v1/ {} +GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], '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'}], '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'}]} +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail ... ok +ironic.tests.unit.conductor.test_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 +/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 + "instead of warning in version 3.0" % (value,)) +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 +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-f91f8ab6-5ddc-4acc-aca2-ab03abf53c8d +{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_whole_disk_image +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_rescue ... ok +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_disabled +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_disabled ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries ... 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.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_instance_ramdisk ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_node_not_locked ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration ... 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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_in_maintenance_on_acquire ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_automated_last_step_noop ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_glance_partition_image ... 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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_bad_step_return_value ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_maintenance_on_acquire ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine ... ok +ironic.tests.unit.drivers.modules.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.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.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects ... ok +ironic.tests.unit.conductor.test_manager.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_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on ... 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.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.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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_apc_masterswitchplus_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_on ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_continue_from_last_cleaning ... 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.NodeInspectHardware.test_inspect_hardware_worker_pool_full +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full ... ok +ironic.tests.unit.drivers.modules.test_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.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_ipmi_properties ... ok +ironic.tests.unit.conductor.test_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.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_true +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_true ... ok +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data_multiple_workers ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_delay ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_ca_file_and_snmp_inspection_true ... ok +ironic.tests.unit.drivers.modules.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.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.test_snmp.SNMPClientTestCase.test_set +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ... 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.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.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok +ironic.tests.unit.drivers.modules.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.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_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_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_no_auth_priv_protocols ... ok +ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails +ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails ... 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.SNMPDeviceDriverTestCase.test_aten_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.UpdatePortTestCase.test_update_port_port_changed_failure +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_port_changed_failure ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v1 ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked ... ok +ironic.tests.unit.drivers.modules.test_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.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.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.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_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.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.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.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm_fail +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm_fail ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ... ok +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_properties ... 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_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.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_release_exceptions_skipping ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_invalid_state +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_invalid_state ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ... ok +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate_fail ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout ... ok +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg +ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg ... ok +ironic.tests.unit.drivers.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.conductor.test_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management +ironic.tests.unit.conductor.test_manager.ManagerTestHardwareTypeProperties.test_hardware_type_properties_manual_management ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_in_bios ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown ... ok +ironic.tests.unit.drivers.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.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ... ok +ironic.tests.unit.conductor.test_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.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_raid_configuration ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown ... 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.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_mode_good ... ok +ironic.tests.unit.drivers.test_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.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting ... ok +ironic.tests.unit.drivers.modules.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.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.test_ilo.IloHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ... 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_fake_hardware.FakeHardwareTestCase.test_console_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ... 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_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_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.objects.test_bios.TestBIOSSettingObject.test_list_delete -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ... ok -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_chassis.TestChassisObject.test_get_by_uuid -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild ... ok +ironic.tests.unit.conductor.test_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.objects.test_chassis.TestChassisObject.test_refresh ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh ... 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.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces ... ok +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties ... ok +ironic.tests.unit.drivers.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.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.objects.test_fields.TestNotificationLevelField.test_coerce_good_value +ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ... ok +ironic.tests.unit.conductor.test_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.objects.test_chassis.TestChassisObject.test_save_after_refresh ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh ... ok -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ... ok -ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_direct -ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_direct ... 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_fault_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove ... 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.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.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot ... 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.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_node_trait_not_found ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_2 ... ok ironic.tests.unit.objects.test_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.test_redfish.RedfishHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ... 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.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.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field ... ok -ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object -ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object ... 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.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_one -ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_one ... 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_supports_physical_network_supported -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported ... 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_get_node_capability -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ... 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.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported +ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_get_raid_logical_disk_properties_iface_not_supported ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_list +ironic.tests.unit.objects.test_node.TestNodeObject.test_list ... 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.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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh +ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... 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.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.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.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.db.test_api.UpgradingTestCase.test_check_versions +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... 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_notification.TestNotificationBase.test_event_type_make_status_invalid +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_invalid_state ... 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.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.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_done_old ... 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_objects.TestObject.test_get_target_version_pinned +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist ... ok +ironic.tests.unit.objects.test_objects.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_static_result +ironic.tests.unit.objects.test_objects.TestObject.test_static_result ... 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.db.test_conductor.DbConductorTestCase.test_get_offline_conductors +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ... ok +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_fail_logout +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_fail_logout ... 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.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api ... ok +ironic.tests.unit.db.test_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.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.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.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok +ironic.tests.unit.objects.test_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.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.ucs.test_management.UcsManagementTestCase.test_get_boot_device_fail +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device_fail ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_refresh +ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ... ok +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old +ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old ... 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.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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup_extra ... 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.ucs.test_power.UcsPowerTestCase.test_get_power_state_fail +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_fail ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ... 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.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.objects.test_port.TestPortObject.test_get_by_address +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ... ok +ironic.tests.unit.drivers.modules.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.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list ... 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.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one ... 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.objects.test_portgroup.TestPortgroupObject.test_create -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create ... 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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... ok +ironic.tests.unit.drivers.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.objects.test_volume_target.TestVolumeTargetObject.test_destroy +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_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_touch_provisioning -ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_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_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_pinned_bad -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad ... 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 +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-a1209bfd-9ff7-4b29-a59c-a9b4ed9a091d +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} +GET: /v1/ {} +GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], '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'}], 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', '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'}]} +func1() migrated 10 of 15 objects. +Running batches of 50 until migrations have been completed. +Data migrations have completed. +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.objects.test_volume_target.TestVolumeTargetObject.test_list +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list ... 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 -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'abf54e5c-659b-4f96-980a-0f6fb17350d9'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 409 Conflict +GET: /v1/volume/connectors/detail {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f21e7489-b4cd-4c2a-b710-f457a8f373d8 +Openstack-Request-Id: req-ab8b36e4-481a-41fd-abb8-961d5337e9b4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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 port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\", \"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-2dc79dba-e9de-4a29-924b-c3b39ea9fc83 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b 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/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-428aba48-2055-4702-8717-42740be9c1fa +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-1495d028-ab38-4503-ae37-40e029f87be6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:12.323825+00:00", "updated_at": null} -DELETE: /v1/portgroups/blah -GOT:Response: 404 Not Found +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.001413+00:00", "updated_at": null} +GET: /v1/volume/targets/?limit=3 {} +GOT:{'targets': [{'uuid': '4b9ba070-0e9d-4c52-86e2-c25c02286e4b', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/4b9ba070-0e9d-4c52-86e2-c25c02286e4b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/4b9ba070-0e9d-4c52-86e2-c25c02286e4b', 'rel': 'bookmark'}]}, {'uuid': '7954e854-cfee-457a-ad38-f66e4c4d1c65', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/7954e854-cfee-457a-ad38-f66e4c4d1c65', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/7954e854-cfee-457a-ad38-f66e4c4d1c65', 'rel': 'bookmark'}]}, {'uuid': 'afcf2f30-7f88-46f9-8f26-d0761cb2a665', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/afcf2f30-7f88-46f9-8f26-d0761cb2a665', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/afcf2f30-7f88-46f9-8f26-d0761cb2a665', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=afcf2f30-7f88-46f9-8f26-d0761cb2a665'} +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-2671d400-f697-49a4-a288-dfc0f8dff48c +Openstack-Request-Id: req-61394eae-7641-4679-a07c-22c54baaf27d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} -GET: /v1/portgroups?address=aa:bb:cc:dd:ee:f1 {} -GOT:{'portgroups': [{'uuid': 'c70c070a-9716-4d51-98bf-9950e16ffcda', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/c70c070a-9716-4d51-98bf-9950e16ffcda', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c70c070a-9716-4d51-98bf-9950e16ffcda', 'rel': 'bookmark'}]}]} -PATCH: /v1/portgroups/pg.1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} +GET: /v1/volume/targets?sort_key=foo {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c9fee73a-02dd-4445-82c4-a38ed4229a39 +Openstack-Request-Id: req-5ed733ea-e464-4b84-8bdd-586bd4fd4ecc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:12.730996+00:00", "updated_at": null} -PATCH: /v1/portgroups/0d202025-6a75-4e7d-9ea8-06deaa64002c [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/volume/targets?sort_key=extra {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-073403de-508e-4d5e-9f5e-3e4b61ffb1ed +Openstack-Request-Id: req-6ed00383-8a2f-4fda-9d4b-ec847085701f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 0d202025-6a75-4e7d-9ea8-06deaa64002c 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'}] +{"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-79f239a3-1d85-4a82-8496-96ffe5b8db6b +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"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-afeaec91-21da-45fc-9d5f-12bcedc8ce06 +Openstack-Request-Id: req-0938d198-b620-426d-a26f-673964be1942 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:12.990755+00:00", "updated_at": null} -POST: /v1/heartbeat/test.1 {'callback_url': 'url'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-bb9852f1-00f7-403b-864e-9522c8e06aac +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.859212+00:00", "updated_at": "2021-12-04T17:54:03.863104+00:00"} +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-3c5e5b24-d02a-4074-aba5-9d01460cda61 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 +{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.859212+00:00", "updated_at": "2021-12-04T17:54:03.863104+00:00"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-8b33d898-3699-4091-acb1-75f1b6778c82 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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: baremetal:node:get\", \"debuginfo\": null}"} +Running batches of 50 until migrations have been completed. +Running batches of 50 until migrations have been completed. +Data migrations have completed. +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.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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ... 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.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.db.test_ports.DbPortTestCase.test_update_port_uuid +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid ... ok +ironic.tests.unit.drivers.modules.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.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_node_vendor_passthru_methods ... ok +ironic.tests.unit.drivers.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.dhcp.test_factory.TestDHCPFactory.test_default_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ... 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.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.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_http_method_not_supported ... ok +ironic.tests.unit.drivers.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.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.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.VifTestCase.test_vif_attach_validate_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ... 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.dhcp.test_neutron.TestNeutron.test_update_dhcp +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp ... 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.test_generic.ManualManagementHardwareTestCase.test_get_properties_none +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ... 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.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.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string ... 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_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.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.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.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_int_info ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_driver_known_driver ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ... 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.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ... 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.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ... ok +ironic.tests.unit.conductor.test_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.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.oneview.test_common.OneViewCommonTestCase.test__verify_node_info +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ... ok +ironic.tests.unit.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.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.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_driver_info +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_driver_info ... 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.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.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.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.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file ... ok +ironic.tests.unit.conductor.test_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.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_active_node +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_active_node ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port ... ok +ironic.tests.unit.conductor.test_utils.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.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.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_cleaning +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_cleaning ... 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.objects.test_objects.TestMisc.test_max_version +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ... 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.objects.test_objects.TestObject.test_changed_1 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_validate +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_validate ... 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_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call ... ok +ironic.tests.unit.drivers.modules.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.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_when_in_use_by_oneview +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_when_in_use_by_oneview ... 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.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_other_exc ... ok +ironic.tests.unit.drivers.modules.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.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj ... ok +ironic.tests.unit.drivers.modules.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.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__del_applied_server_profile_uri_field +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__del_applied_server_profile_uri_field ... ok +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error +ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic ... ok +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps +ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_invalid_parameter +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_invalid_parameter ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_same_server_profile_applied +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_same_server_profile_applied ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc ... 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_port.TestPortObject.test_get_by_id +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_persistent +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_persistent ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver ... 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.objects.test_volume_target.TestVolumeTargetObject.test_create +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ... ok +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_trait_type +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_trait_type ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_recreate_boot_iso_use_webserver ... 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 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 204 No Content -Openstack-Request-Id: req-fd0621f0-9e66-415c-aaa5-e9588023508a +GET: /portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9 {} +GOT:{'uuid': '4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4c82ee8f-1450-4999-9ae9-94bdd18d5ea9/ports', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:53:58.883713+00:00', 'updated_at': None} +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'}]}]} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-e8d633a8-f8b1-4cdf-9a64-b38bc2955beb +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:53:59.403673+00:00", "updated_at": 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-dd12ba56-dddd-4de6-8a7a-e976fe585646 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +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/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-e5acfdec-5384-4b0d-aa80-be2e7f2d4d9d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 GET: /v1/volume/connectors {} -GOT:{'connectors': [{'uuid': 'cc92f19e-3c38-486b-9ddf-5ebb10799949', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/cc92f19e-3c38-486b-9ddf-5ebb10799949', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/cc92f19e-3c38-486b-9ddf-5ebb10799949', 'rel': 'bookmark'}]}, {'uuid': 'e8e4f9f2-13a1-41b7-9ae2-3e63471f4fa6', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/e8e4f9f2-13a1-41b7-9ae2-3e63471f4fa6', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e8e4f9f2-13a1-41b7-9ae2-3e63471f4fa6', 'rel': 'bookmark'}]}, {'uuid': 'ad6737f5-064c-4d98-bd8e-7e0e54e4148b', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/ad6737f5-064c-4d98-bd8e-7e0e54e4148b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ad6737f5-064c-4d98-bd8e-7e0e54e4148b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=ad6737f5-064c-4d98-bd8e-7e0e54e4148b'} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=connector_id,extra {} +GOT:{'connectors': [{'uuid': '2bdd8591-905f-4e7d-8aa2-6be9a31ed0fd', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/2bdd8591-905f-4e7d-8aa2-6be9a31ed0fd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2bdd8591-905f-4e7d-8aa2-6be9a31ed0fd', 'rel': 'bookmark'}]}, {'uuid': '63b21143-03d3-4b75-83fd-f0246a778cac', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/63b21143-03d3-4b75-83fd-f0246a778cac', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/63b21143-03d3-4b75-83fd-f0246a778cac', 'rel': 'bookmark'}]}, {'uuid': 'bf7848f2-2463-4ef4-b8bf-01f51f7b3339', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/bf7848f2-2463-4ef4-b8bf-01f51f7b3339', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/bf7848f2-2463-4ef4-b8bf-01f51f7b3339', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=bf7848f2-2463-4ef4-b8bf-01f51f7b3339'} +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-8c59e5eb-0df0-4d2e-acfd-e6ab7fe19f3b +Openstack-Request-Id: req-1aaa44f3-76b7-4538-a1f0-2757fe3652ae +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"debuginfo\": null}"} +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 204 No Content +Openstack-Request-Id: req-0563638d-c599-4d60-b9e3-72a5df704501 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_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_volume_connector.TestPatch.test_add_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_node_uuid_to_node_id_mapping ... ok -ironic.tests.unit.api.controllers.v1.test_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.test_middleware.TestCORSMiddleware.test_valid_cors_get_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ... ok -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root ... 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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_none ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two ... ok -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ... 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.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported -ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_no_key_no_exception ... ok -ironic.tests.unit.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.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.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ... 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.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_exception_by_neutronclient ... ok -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... ok -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_namespace ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi ... ok -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context ... ok -ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link -ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ... ok -ironic.tests.unit.common.test_utils.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.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.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_no_console_enabled ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start ... ok -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated -ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated ... ok -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios_exception ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_network_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_steps_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_power_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_old -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_ok_old ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ... ok -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error -ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_driver_raises_error ... ok -ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails -ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify_validation_fails ... 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.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.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_no_acquire_after_lock ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked ... ok -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi ... ok -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ... ok -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_driver_interfaces_validation_fail ... ok -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_node_locked ... ok -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_get_raid_logical_disk_properties ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ... 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.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_deployfail_state_old ... 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.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off ... ok -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate ... ok -ironic.tests.unit.conductor.test_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.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.VifTestCase.test_vif_detach -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ... 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.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.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ... 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_get_topic_for_unknown_driver -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_unknown_driver ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ... ok -ironic.tests.unit.conductor.test_task_manager.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.TaskManagerTestCase.test_shared_lock_get_ports_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_ports_exception ... ok -ironic.tests.unit.conductor.test_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_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_rescuing_error_handler -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ... ok -ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test_set_node_deployment_steps -ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test_set_node_deployment_steps ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid -ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_add_1 ... ok -ironic.tests.unit.objects.test_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_port.TestPortObject.test_payload_schemas -ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas ... ok -POST: /v1/heartbeat/97e18260-bce9-429e-b00b-173f1e238649 {'callback_url': 'url'} -GOT:Response: 404 Not Found +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8047441e-8310-492a-a066-6fc2db028d7f +Openstack-Request-Id: req-125d35d9-13e9-42c1-a21d-6ee19a4d2a28 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/volume/connectors?detail=True&limit=3 {} -GOT:{'connectors': [{'uuid': '71e5d286-f1f1-4be9-bc3a-3513c22b0b15', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/71e5d286-f1f1-4be9-bc3a-3513c22b0b15', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/71e5d286-f1f1-4be9-bc3a-3513c22b0b15', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:19.233384+00:00', 'updated_at': None}, {'uuid': 'adb8649a-3561-4df9-b277-ef738a166dbb', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/adb8649a-3561-4df9-b277-ef738a166dbb', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/adb8649a-3561-4df9-b277-ef738a166dbb', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:19.236641+00:00', 'updated_at': None}, {'uuid': '6b4331c4-3dc3-4841-aa25-53bec2db0d8e', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6b4331c4-3dc3-4841-aa25-53bec2db0d8e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6b4331c4-3dc3-4841-aa25-53bec2db0d8e', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:19.238991+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=6b4331c4-3dc3-4841-aa25-53bec2db0d8e'} -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?sort_key=foo {} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} +GET: /v1/volume/targets/detail {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6e2db2eb-6f9d-4ef4-bbbf-e3d3fd47529b +Openstack-Request-Id: req-2e4e730e-9fb3-4271-b199-cb9e24e1102f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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 {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute target_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\", \"debuginfo\": null}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 0, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c3b89406-b967-4bd6-9061-1f169ce5c6e5 +Openstack-Request-Id: req-868d508d-316f-4d94-b29c-f0f49f94d9fc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] -GOT:Response: 200 OK +{"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}"} +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_properties ... 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.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.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.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.redfish.test_management.RedfishManagementTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok +ironic.tests.unit.drivers.modules.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.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.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.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.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.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_that_does_not_exist ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot ... 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.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_manual_clean_version_mismatch +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_manual_clean_version_mismatch ... 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.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.db.test_nodes.DbNodeTestCase.test_create_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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_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.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.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_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.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.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_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb ... ok +ironic.tests.unit.drivers.modules.test_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.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_invalid +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_invalid ... 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_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_checksum_validation_error +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_checksum_validation_error ... 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_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.ilo.test_management.IloManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image +ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image ... 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.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image_validation_fail +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_nonglance_image_validation_fail ... 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.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.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.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_only_one_dhcp ... 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.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.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up ... ok +ironic.tests.unit.drivers.modules.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.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_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.ansible.test_deploy.TestAnsibleDeploy.test_tear_down +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ... ok +ironic.tests.unit.drivers.modules.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.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ... ok +ironic.tests.unit.drivers.modules.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.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_debug ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_out_of_date ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none ... ok +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ... ok +/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 + "instead of warning in version 3.0" % (value,)) +ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to delete the pending BIOS settings for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading ... ok +ironic.tests.unit.drivers.modules.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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_flat ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent ... ok +ironic.tests.unit.drivers.modules.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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports ... ok +ironic.tests.unit.drivers.modules.drac.test_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_pxe +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state ... ok +ironic.tests.unit.drivers.modules.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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port ... ok +ironic.tests.unit.drivers.modules.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.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.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.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.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail ... ok +ironic.tests.unit.drivers.modules.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.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.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.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.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration_no_change ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_sh +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_sh ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_validate +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_in_use_by_oneview +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_in_use_by_oneview ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_oneview_error +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_manageable_maintenance_when_oneview_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off_with_timeout +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off_with_timeout ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_false +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_secure_boot_mode_passed_false ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_on +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_on ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_with_logs ... 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.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_without_logs ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets ... ok +ironic.tests.unit.drivers.modules.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.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.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.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_invalid_state ... ok +ironic.tests.unit.drivers.modules.test_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.irmc.test_inspect.IRMCInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_netboot ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_clean_steps +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_clean_steps ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_without_copy ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_partition +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_partition ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_in_maintenance ... 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_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports ... ok +ironic.tests.unit.drivers.modules.test_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_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_missing_deploy_kernel +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info_missing_deploy_kernel ... 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.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_port_like_obj_by_vif_id_in_extra ... 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_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_additional_volume_type +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_additional_volume_type ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_tear_down_inband_cleaning_manage_boot_false ... ok +ironic.tests.unit.drivers.modules.test_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_config_template_bios_without_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_write ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_false +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_false ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb ... ok +ironic.tests.unit.drivers.modules.test_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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info ... 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.oneview.test_common.OneViewCommonTestCase.test_validate_oneview_resources_compatibility +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_validate_oneview_resources_compatibility ... 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_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.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_image_exceeds_root_partition ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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.PhysicalWorkTestCase.test_deploy_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_clean_failed_when_no_oneview_error +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_clean_failed_when_no_oneview_error ... 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.oneview.test_management.OneViewManagementDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_properties ... 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.oneview.test_power.OneViewPowerDriverTestCase.test_get_supported_power_states +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_supported_power_states ... 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.ucs.test_power.UcsPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_invalid_state +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_invalid_state ... 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.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_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.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.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata ... ok +ironic.tests.unit.drivers.modules.test_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_master_path_if_stale_no_updated_at +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate ... ok +ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device ... ok +ironic.tests.unit.drivers.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.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled +ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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.test_irmc.IRMCHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started ... 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_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout ... ok +ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_did_start ... 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.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.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown ... ok +ironic.tests.unit.drivers.modules.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.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.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_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_adopting ... 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.objects.test_conductor.TestConductorObject.test_register +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ... 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.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_invalid_type ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails ... ok +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits +ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_interface +ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_interface ... ok +ironic.tests.unit.drivers.modules.test_pxe.CleanUpPxeEnvTestCase.test__clean_up_pxe_env +ironic.tests.unit.drivers.modules.test_pxe.CleanUpPxeEnvTestCase.test__clean_up_pxe_env ... 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_agent_client.TestAgentClient.test__command_error_code +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code ... 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_agent_client.TestAgentClient.test_start_iscsi_target_custom_port +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_custom_port ... 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.objects.test_objects.TestObject.test_contains +ironic.tests.unit.objects.test_objects.TestObject.test_contains ... 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.objects.test_objects.TestObject.test_updates +ironic.tests.unit.objects.test_objects.TestObject.test_updates ... 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.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.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.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.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_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.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.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly +ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly ... ok +ironic.tests.unit.drivers.modules.test_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.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.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_deploy_kernel ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb ... ok +ironic.tests.unit.drivers.modules.test_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.objects.test_port.TestPortObject.test_save_after_refresh +ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ... ok +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option ... 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.objects.test_trait.TestTraitObject.test_destroy +ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_config +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_config ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability ... ok +"max-count" must be a positive value. +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 + +GET: /v1/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09 {} +GOT:{'uuid': 'ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:10.810140+00:00', 'updated_at': None} +GET: /v1/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09 {} +GOT:{'uuid': 'ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:10.810140+00:00', 'updated_at': None} +GET: /volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09 {} +GOT:{'uuid': 'ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ebf6d717-b0dd-4a52-a936-3153ecf39e09', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:10.810140+00:00', 'updated_at': None} +PATCH: /v1/volume/targets/414d7d9c-3395-47a9-b93d-34f73c52c2ad [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e7288475-8863-4607-b6f3-28b60d0dee69 +Openstack-Request-Id: req-40fa2130-2f0a-4f7f-8f51-96a9234c9c59 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:19.474001+00:00", "updated_at": null} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 414d7d9c-3395-47a9-b93d-34f73c52c2ad could not be found.\", \"debuginfo\": null}"} +GET: / {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-b34b171b-f7e3-49d8-a870-55aa33415876 +{"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}"} +Malformed option m1key1=value1 +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_cpu_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_cpu_arch ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot_from_lists +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_and_iscsi_boot_from_lists ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_ramdisk ... 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.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_pxe.PXERamdiskDeployTestCase.test_validate +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate ... 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_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_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.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.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_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_console_init_calls_for_socat_already_checked ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport ... ok +ironic.tests.unit.drivers.modules.test_snmp.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_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_ok ... 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_cyberpower_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_snmp_objects ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_good ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_known_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__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_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_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_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout ... 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.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_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail ... 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.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_pxe.PXEBootTestCase.test_validate_fail_glance_image_doesnt_exists +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_image_doesnt_exists ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ... ok +ironic.tests.unit.drivers.modules.test_snmp.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_power_off_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off ... 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_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_missing_address +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ... ok +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_sensors_data +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_sensors_data ... ok +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device ... ok +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_error +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_error ... ok +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only ... ok +ironic.tests.unit.drivers.test_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.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_fake_hardware.FakeHardwareTestCase.test_inspect_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ... 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_normalize_mac_unicode +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_unicode ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing ... 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.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.objects.test_node.TestNodeObject.test_reserve +ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ... 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_objects.TestObject.test_as_dict +ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ... 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.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.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.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_address +ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_address ... 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_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.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.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_list_by_node_id +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id ... ok +Error while running foo: bar. +/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 + "instead of warning in version 3.0" % (value,)) +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas ... ok +ironic.tests.unit.drivers.modules.test_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 + +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-bde61d3e-b8ef-47d9-898c-f9aa36e8d177 +Openstack-Request-Id: req-24233e11-466a-4bff-8c0e-045fa098cfab X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-123", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:19.551207+00:00", "updated_at": null} -POST: /v1/volume/connectors {'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute volume_type. Value: 'None'. Mandatory field missing.\", \"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/connectors/93a427e5-b021-43e0-9e46-4c137b9db3ed -Openstack-Request-Id: req-3a5f5dc6-ebf6-4d19-9956-d010d86b4efc +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-3c2a54b7-1478-4617-bf59-166f452d6610 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "93a427e5-b021-43e0-9e46-4c137b9db3ed", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/93a427e5-b021-43e0-9e46-4c137b9db3ed", "rel": "self"}, {"href": "http://localhost/volume/connectors/93a427e5-b021-43e0-9e46-4c137b9db3ed", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:19.658121+00:00", "updated_at": null} -GET: /v1/volume/connectors/93a427e5-b021-43e0-9e46-4c137b9db3ed {} -GOT:{'uuid': '93a427e5-b021-43e0-9e46-4c137b9db3ed', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/93a427e5-b021-43e0-9e46-4c137b9db3ed', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/93a427e5-b021-43e0-9e46-4c137b9db3ed', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:19.658121+00:00', 'updated_at': None} -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 +{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:31.284346+00:00", "updated_at": null} +GET: / {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -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 +Openstack-Request-Id: req-4a23b03a-6128-4501-b37d-92e105fd524f +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} +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. +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_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.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.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info ... ok +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state ... ok +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_xclarity_client ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict ... ok +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_no_target_raid_config ... ok +ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper +ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ... 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_snmp.SNMPHardwareTestCase.test_fake_management +ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_bad_id_and_uuid ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ... ok +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ... 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.objects.test_node.TestConvertToVersion.test_fault_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing ... 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.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_default ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save +ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... 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_same +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object +ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ... 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_port.TestConvertToVersion.test_vif_in_extra_lower_version +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas +ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas ... 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_by_address +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address ... 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_volume_connector.TestVolumeConnectorObject.test_list_none +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none ... 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_payload_schemas +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ... ok +ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute +ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ... ok +ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute +ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ... ok + +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-5b4757c3-2f62-40c9-91a4-bdc0b0395879 +Openstack-Request-Id: req-d8389c7f-308e-42b4-996b-75c70657f46d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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": null, "dict": {"cat": "meow"}}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:20.106029+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_valid_extra ... ok -ironic.tests.unit.api.controllers.v1.test_volume_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.TestPost.test_create_volume_target_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra ... 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.common.test_cinder.TestCinderActions.test_detach_volumes -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported ... ok -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state ... 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.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.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured ... ok -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member ... 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.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_with_trailing_slash -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_with_trailing_slash ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_path_relative_to_tftp_root_without_trailing_slash ... ok -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_raid_level ... ok -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions ... ok -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_rpc_and_objects_versions_supported ... ok -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail ... ok -ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail -ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_driver_specific_tasks ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_no_state_change ... ok -ironic.tests.unit.conductor.test_manager.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.objects.test_trait.TestTraitObject.test_get_by_id -ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id ... 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.DoNodeCleanTestCase.test_continue_node_clean_wrong_state -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_wrong_state ... ok -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_deprecated -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test_do_node_deploy_deprecated ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescue ... ok -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide -ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide ... ok -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good ... ok -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake ... ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state ... ok -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_locked ... ok -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config -ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config ... ok -ironic.tests.unit.conductor.test_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.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.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.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.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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_active_state_and_maintenance ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_shared_lock ... ok -ironic.tests.unit.conductor.test_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.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked ... 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.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.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_vif_detach -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ... 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.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state ... ok -ironic.tests.unit.conductor.test_task_manager.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_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.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout ... ok -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false -ironic.tests.unit.conductor.test_utils.MiscTestCase.test_remove_node_rescue_password_save_false ... ok -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_no_steps ... ok -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated ... ok -ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported -ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ... ok -ironic.tests.unit.conductor.test_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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state ... ok -ironic.tests.unit.conductor.test_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_set_power_failure -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure ... 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.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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} +GET: / {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-68ae03c5-9d5e-4b2e-8373-7f13d855add0 +{"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which aims to provision baremetal machines.", "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.46", "min_version": "1.1"}], "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.46", "min_version": "1.1"}} +GET: /v1 {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-cc3b21db-5108-4554-828a-259edbdb7f64 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.1 +{"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "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"}]} +GET: /v1/bad/path {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice ... skipped u"Backend 'postgresql' is unavailable: Could not connect" +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" +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.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" +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.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" +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_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version ... skipped u"Backend 'postgresql' is unavailable: Could not connect" +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 u"Backend 'postgresql' is unavailable: Could not connect" +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ... ok +ironic.tests.unit.db.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.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" +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.test_conductor.DbConductorTestCase.test_register_conductor_override +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override ... ok +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ... ok +ironic.tests.unit.db.test_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.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" +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 u"Backend 'postgresql' is unavailable: Could not connect" +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.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad +ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag ... 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.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor ... 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.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.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_duplicate ... ok +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_default_value ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting ... ok +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model ... ok +ironic.tests.unit.db.test_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.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag_node_not_exist ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ... ok +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node ... 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.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_node_traits.DbNodeTraitTestCase.test_add_node_trait +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_one_ht ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_by_uuid ... 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_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_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_multiple_found ... ok +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate ... ok +ironic.tests.unit.db.test_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.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode ... ok +ironic.tests.unit.db.test_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.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock ... 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.db.test_nodes.DbNodeTestCase.test_reservation_after_release +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty ... ok +ironic.tests.unit.db.test_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.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.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.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.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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_inspection ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_nodeid_and_bootindex ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate ... 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.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_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node_uuid ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address +ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_address ... ok +ironic.tests.unit.db.test_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_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target ... 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.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_ports.DbPortTestCase.test_get_port_by_id +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_with_exception ... ok +ironic.tests.unit.db.test_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.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.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name ... 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.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.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_provisioning ... ok +ironic.tests.unit.db.test_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_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.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.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.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.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_node_traits.DbNodeTraitTestCase.test_set_node_traits +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits ... 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.ansible.test_deploy.TestAnsibleDeploy.test_validate +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision ... ok +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits ... ok +ironic.tests.unit.db.test_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.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.dhcp.test_neutron.TestNeutron.test_get_ip_addresses +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake ... ok +ironic.tests.unit.drivers.modules.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.db.test_ports.DbPortTestCase.test_update_port +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug ... ok +ironic.tests.unit.drivers.modules.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.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.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_node_traits.DbNodeTraitTestCase.test_unset_node_traits +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits ... ok +ironic.tests.unit.drivers.modules.drac.test_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.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_extra +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_portgroup_extra ... 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.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.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ... 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_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.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.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__calculate_memory_req ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_config_jobs ... 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.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ... ok +ironic.tests.unit.drivers.modules.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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ... ok +ironic.tests.unit.drivers.modules.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.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance_deprecated +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance_deprecated ... 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.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.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_unknown_error +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_unknown_error ... ok +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device_fail ... 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.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.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.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_root_device_hints ... ok +ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login +ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_ok ... 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.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_password +ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_password ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_MissingParam +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_MissingParam ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_names_not_unique ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.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.cimc.test_power.PowerTestCase.test_reboot_off +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_off ... ok +ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_username +ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_username ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_fail +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_username ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_url +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_url ... ok +ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login_exception +ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login_exception ... ok +ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_address +ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_address ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_validate +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on ... 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.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device ... 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_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_predefined_number_of_phyisical_disks ... 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.cimc.test_power.PowerTestCase.test_reboot_on_timeout +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on_timeout ... 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.cimc.test_power.PowerTestCase.test_set_power_state_invalid_state +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_invalid_state ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails ... ok +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state_fail +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_power_state_fail ... 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.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.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.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode ... ok +ironic.tests.unit.drivers.modules.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.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.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change +ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change ... ok +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info ... ok +ironic.tests.unit.drivers.modules.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.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.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance ... ok +ironic.tests.unit.drivers.modules.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_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.drac.test_management.DracManagementTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device ... ok +ironic.tests.unit.drivers.modules.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.drac.test_job.DracJobTestCase.test_list_unfinished_jobs +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_50 ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_invalid_job_queue +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_invalid_job_queue ... ok +ERROR [ironic.drivers.modules.drac.bios] DRAC driver failed to commit the pending BIOS changes for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume_bios ... ok +ironic.tests.unit.drivers.modules.drac.test_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.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.DracManageVirtualDisksTestCase.test_commit_config +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict ... ok +ironic.tests.unit.drivers.modules.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.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.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.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_fail ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks ... ok +ironic.tests.unit.drivers.modules.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.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to ... ok +ironic.tests.unit.drivers.modules.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.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_inspect.TestInspectPrivateMethods.test__get_capabilities_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_mac_invalid_format ... ok +ironic.tests.unit.drivers.modules.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.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_uefi_no_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_uefi_no_glance_image ... 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.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset ... 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.drac.test_management.DracManagementTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device ... ok +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed +ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_on_webserver +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_on_webserver ... 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.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.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.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_object_name +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_object_name ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_eject_vmedia_devices_raises ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ... ok +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_invalid_parameter +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_invalid_parameter ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift_suppresses_operror_exc ... ok +ironic.tests.unit.drivers.modules.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.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.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_sec_boot_on ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_ok ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_swift ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_max_and_sharing_same_disks ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_http_based_fw_to_gets_invoked_for_http_based_firmware ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false_and_existing_cap +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false_and_existing_cap ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_false ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks ... ok +ironic.tests.unit.drivers.modules.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.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok ... ok +ironic.tests.unit.drivers.modules.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.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_processing_on_any_url_fails +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_processing_on_any_url_fails ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_non_glance_partition_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_non_glance_partition_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_environment_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_ilo_error +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_ilo_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_unknown_error ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_empty_snmp_security +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_empty_snmp_security ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_not_a_glance_image_cleaning ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_address ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_password ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_exception ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image ... 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.IloValidateParametersTestCase.test_parse_driver_info_missing_address +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ... ok +ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_file_based_fw_to_copies_file_to_target ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_auth_protocol ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_uuid +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_uuid ... 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.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.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.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__validate_sum_components_fails +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_persistent_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me ... ok +ironic.tests.unit.drivers.modules.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.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_node ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__get_floppy_image_name ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_deploying ... ok +ironic.tests.unit.drivers.modules.ilo.test_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_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_verify_firmware_update_args_throws_for_no_firmware_url ... ok +ironic.tests.unit.drivers.modules.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.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.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port ... ok +ironic.tests.unit.drivers.modules.ilo.test_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_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_invalid_component ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_extra +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_extra ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist_mac_exception +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__create_ports_if_not_exist_mac_exception ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_not_enough_disks ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_instance_info_exists ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_not_supported +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_not_supported ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra_and_internal_priority ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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_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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_use_def_boot_mode ... ok +ironic.tests.unit.drivers.modules.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.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_activate_license_no_or_invalid_format_license_key ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port +ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_port ... ok +ironic.tests.unit.drivers.modules.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.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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_auth_method ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__extract_fw_from_file ... ok +ironic.tests.unit.drivers.modules.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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed ... ok +ironic.tests.unit.drivers.modules.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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first ... ok +ironic.tests.unit.drivers.modules.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.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_sensor_data ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet2 ... ok +ironic.tests.unit.drivers.modules.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.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_physnet_match_first ... ok +ironic.tests.unit.drivers.modules.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_management.IloManagementTestCase.test_get_boot_device_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_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_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_empty ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_extra_vif_port_id +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_extra_vif_port_id ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_plug_port_to_tenant_network_no_tenant_vif ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet3 ... ok +ironic.tests.unit.drivers.modules.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.network.test_noop.NoopInterfaceTestCase.test_get_properties +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_enable ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... ok +ironic.tests.unit.drivers.modules.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_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent ... ok +ironic.tests.unit.drivers.modules.irmc.test_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.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_malformed_capabilities +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_malformed_capabilities ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_invalid_component_type +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_invalid_component_type ... 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.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_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_extra_add_new_key ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_clean_step_foreach_url +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_clean_step_foreach_url ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_cleaning +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_cleaning ... 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.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_if_invalid_update_mode_provided +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_if_invalid_update_mode_provided ... 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_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_swift_url ... 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_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.network.test_flat.TestFlatInterface.test_init_no_cleaning_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_available_when_not_in_use_by_oneview +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_available_when_not_in_use_by_oneview ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_properties +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_node_properties ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_ilo_access +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_ilo_access ... 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.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_without_component +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_without_component ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_deploy +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_deploy ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_timeout +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_timeout ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_address ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.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.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_not_in_use_by_oneview +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_not_in_use_by_oneview ... 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.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_does_not_have_sp_applied +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_does_not_have_sp_applied ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic_node_has_server_profile +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic_node_has_server_profile ... 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.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_in_use_by_oneview +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_in_use_by_oneview ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure ... ok +ironic.tests.unit.drivers.modules.irmc.test_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.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_false +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_false ... 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.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_not_persistent +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_not_persistent ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok +ironic.tests.unit.drivers.modules.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.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.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_node_in_use_by_oneview +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_node_in_use_by_oneview ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot_no_exc +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot_no_exc ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_from_next_boot_device +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_from_next_boot_device ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_trusted_boot_is_false ... 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_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.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state_fail +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state_fail ... 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.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_multiple_ports_one_vif_id ... ok +ironic.tests.unit.drivers.modules.network.test_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.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.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_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.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_boot_device ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate ... 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.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_other_commands +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_other_commands ... 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_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.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.oneview.test_common.OneViewCommonTestCase.test__validate_node_port_mac_server_hardware_invalid +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_port_mac_server_hardware_invalid ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_manage_boot_false +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_manage_boot_false ... 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.test_agent.TestAgentDeploy.test_deploy_is_done +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_spt +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_spt ... 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.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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_targets ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port ... ok +ironic.tests.unit.drivers.modules.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.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_with_automated_clean_disabled +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_with_automated_clean_disabled ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_tenant_vif ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_successfuly_allocated_to_ironic +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_successfuly_allocated_to_ironic ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_port_physnets ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_active_node +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_active_node ... ok +ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot ... 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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets ... ok +ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_inspect_hardware +ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_inspect_hardware ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running ... 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.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_not_persistent +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_not_persistent ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook ... ok +/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 + "instead of warning in version 3.0" % (value,)) +Traceback (most recent call last): + File "/build/ironic-11.1.0/ironic/drivers/modules/inspector.py", line 148, in _start_inspection + _get_client(context).introspect(node_uuid) + File "/build/ironic-11.1.0/ironic/drivers/modules/inspector.py", line 61, in _get_client + inspector_url = adapter.get_endpoint() + File "/usr/lib/python3/dist-packages/keystoneauth1/adapter.py", line 247, in get_endpoint + return self.session.get_endpoint(auth or self.auth, **kwargs) + File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 1111, in get_endpoint + auth = self._auth_required(auth, 'determine endpoint URL') + File "/usr/lib/python3/dist-packages/keystoneauth1/session.py", line 1051, in _auth_required + raise exceptions.MissingAuthPlugin(msg_fmt % msg) +keystoneauth1.exceptions.auth_plugins.MissingAuthPlugin: An auth plugin is required to determine endpoint URL + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/usr/lib/python3/dist-packages/eventlet/hubs/hub.py", line 457, in fire_timers + timer() + File "/usr/lib/python3/dist-packages/eventlet/hubs/timer.py", line 58, in __call__ + cb(*args, **kw) + File "/build/ironic-11.1.0/ironic/drivers/modules/inspector.py", line 157, in _start_inspection + purpose=lock_purpose) as task: + File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 165, in acquire + return TaskManager(context, node_id, shared=shared, purpose=purpose) + File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 238, in __init__ + self.release_resources() + File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ + self.force_reraise() + File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise + six.reraise(self.type_, self.value, self.tb) + File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise + raise value + File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 222, in __init__ + self._lock() + File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 270, in _lock + reserve_node() + File "/usr/lib/python3/dist-packages/retrying.py", line 49, in wrapped_f + return Retrying(*dargs, **dkw).call(f, *args, **kw) + File "/usr/lib/python3/dist-packages/retrying.py", line 206, in call + return attempt.get(self._wrap_exception) + File "/usr/lib/python3/dist-packages/retrying.py", line 247, in get + six.reraise(self.value[0], self.value[1], self.value[2]) + File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise + raise value + File "/usr/lib/python3/dist-packages/retrying.py", line 200, in call + attempt = Attempt(fn(*args, **kwargs), attempt_number, False) + File "/build/ironic-11.1.0/ironic/conductor/task_manager.py", line 263, in reserve_node + self.node_id) + File "/build/ironic-11.1.0/ironic/objects/node.py", line 324, in reserve + db_node = cls.dbapi.reserve_node(tag, node_id) + File "/usr/lib/python3/dist-packages/oslo_db/api.py", line 154, in wrapper + ectxt.value = e.inner_exc + File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__ + self.force_reraise() + File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise + six.reraise(self.type_, self.value, self.tb) + File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise + raise value + File "/usr/lib/python3/dist-packages/oslo_db/api.py", line 142, in wrapper + return f(*args, **kwargs) + File "/build/ironic-11.1.0/ironic/db/sqlalchemy/api.py", line 307, in reserve_node + raise exception.NodeNotFound(node_id) +ironic.common.exception.NodeNotFound: 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +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.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_fail +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_partition_localboot_ppc64 ... 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.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_on_fails +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_on_fails ... 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.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_power_state ... 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.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_finalize_rescue_exc +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc ... 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_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.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__get_post_clean_step_hook_no_hook_registered ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception ... ok +ironic.tests.unit.drivers.modules.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.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot ... 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.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors ... ok +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_localboot ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_none ... ok +ironic.tests.unit.drivers.modules.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.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device +ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_no_parent_device ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_iscsi_conn_fc_target ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield +ironic.tests.unit.drivers.modules.test_deploy_utils.ISCSISetupAndHandleErrorsTestCase.test_parent_device_yield ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_cleaning +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_tear_down_cleaning ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__create_profile_from_template +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test__create_profile_from_template ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_bad_command_result ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_unknown_device +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_unknown_device ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_ipv6_address_wrapped ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_fails +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_fails ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_trusted_boot ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_iscsi_connector ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up_manage_agent_boot_false ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_off +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_off ... 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_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue_fails +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_rescue_fails ... 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.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_with_timeout +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_with_timeout ... 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.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps +ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_master ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_out_of_date ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_steps +ironic.tests.unit.drivers.modules.test_agent_base_vendor.TestRefreshCleanSteps.test_refresh_clean_steps_missing_steps ... 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_client.TestAgentClient.test_sync +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync ... 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.redfish.test_management.RedfishManagementTestCase.test_inject_nmi +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi ... ok +ironic.tests.unit.drivers.modules.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.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.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device ... ok +ironic.tests.unit.drivers.modules.test_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_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities ... 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_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_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_uefi +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_uefi ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_ok ... ok +ironic.tests.unit.drivers.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.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_instance_source ... ok +ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_ok ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_uefi +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_uefi ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_reboot +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_reboot ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update ... 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.test_agent_client.TestAgentClient.test_power_off +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off ... ok +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout ... ok +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_url +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_url ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_ok ... 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.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_management_init_calls ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail ... ok +ironic.tests.unit.drivers.modules.test_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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_false +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_trusted_boot_requested_false ... 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_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_login_iscsi_calls_raises ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_port_valid ... ok +ironic.tests.unit.drivers.modules.test_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.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ... ok +ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolDriverTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ... 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.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_fails +ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_fails ... 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.oneview.test_deploy.OneViewIscsiDeployTestCase.test_get_properties +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source ... ok +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up +ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_both_clean_up ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.CleanUpFullFlowTestCase.test_clean_up_with_master +ironic.tests.unit.drivers.modules.test_iscsi_deploy.CleanUpFullFlowTestCase.test_clean_up_with_master ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_not_specified ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ... ok +ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods +ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_deallocate_server_hardware_from_ironic +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_deallocate_server_hardware_from_ironic ... 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_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_missing_root_uuid ... ok +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_has_sp_applied +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_has_sp_applied ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_ok ... ok +ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_get_properties +ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_get_properties ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ... ok +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_fail_to_get_server_profile +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_fail_to_get_server_profile ... 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_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.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_fail +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good ... ok +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_missing_parameter +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_missing_parameter ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_fixes_and_logs_boot_option_warning ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 ... ok +ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ... ok +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_pass ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ... ok +ironic.tests.unit.drivers.modules.test_snmp.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_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_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_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.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi_and_unknown ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ... 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.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_raises_with_insufficent_data ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning ... 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.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fail_on_unknown_volume_types ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_is_force_persistent_boot_device_enabled +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_is_force_persistent_boot_device_enabled ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target ... ok +ironic.tests.unit.drivers.modules.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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_nonroot ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe ... 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_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_local_boot +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_local_boot ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_empty_rescue_password ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel_ipxe +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel_ipxe ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_no_proxy_without_proxies +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_no_proxy_without_proxies ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_volume_type +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_volume_type ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_empty_response +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_empty_response ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_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.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.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_password +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_password ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities_overwrite +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_no_capabilities_overwrite ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_down +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_down ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.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_agent.TestAgentDeploy.test_reboot_to_instance_boot_error +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_boot_error ... 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_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.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_agent.TestAgentMethods.test_check_image_size_fail +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console_fail_nodir ... ok +ironic.tests.unit.drivers.modules.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.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_default_interfaces ... 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_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_agent +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_agent ... 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_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_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_boot_loader_install_fail ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ... ok +ironic.tests.unit.drivers.modules.test_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_snmp.SNMPDriverTestCase.test_get_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ... ok +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy ... 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_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_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_cache_instance_images_master_path ... 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_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_set_boot_device_fail ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ... ok +ironic.tests.unit.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.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_old_command +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_old_command ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_okay ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_already_target_state +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_already_target_state ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_netboot_specified +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_netboot_specified ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_configure_fails ... 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.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_exceed_iterations +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_exceed_iterations ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_default ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_whole_disk_image ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure ... 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.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_timeout +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_timeout ... 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.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_schema_not_populated ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_configure_tenant_network_exception ... ok +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image_with_configdrive ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_wipe_disk_metadata +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_wipe_disk_metadata ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ... ok +ironic.tests.unit.drivers.modules.test_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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base +ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ... ok +ironic.tests.unit.drivers.modules.test_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.objects.test_objects.TestObject.test_object_property +ironic.tests.unit.objects.test_objects.TestObject.test_object_property ... 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.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.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_execute_clean_step_running ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_invalid_trusted_boot_value ... 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_payload_schemas +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_id ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_trusted_boot_with_secure_boot ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning ... ok +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ... ok +ironic.tests.unit.drivers.modules.test_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.test_base.BlockExecuteTestCase.test_exception_raised_for_execute +ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_preserve_ephemeral ... ok +ironic.tests.unit.drivers.modules.test_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_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.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.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipa_debug_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipa_debug_rescue ... 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_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_3 ... ok -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None, 'pxe_enabled': True, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, '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'}], 'created_at': '2023-01-07T00:10:10.511074+00:00', 'updated_at': None} -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-21f4f36f-3896-4fb9-8c00-67fc2732e691 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.713475+00:00", "updated_at": "2023-01-07T00:10:10.813859+00:00"} -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-aa55d945-f664-4530-b423-ddc139a0d061 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '1506e1f1-19b3-4506-9c55-25c3146fbd13', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-64add308-31b7-4264-af76-69b62da0203f -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.24 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "1506e1f1-19b3-4506-9c55-25c3146fbd13", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.066988+00:00", "updated_at": "2023-01-07T00:10:11.166879+00:00"} -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, '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-187561a9-bffa-4a9d-9a0f-3d515cbb1c88 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet1/15"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.380850+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +GET: /v1/portgroups {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-7e8cd5e0-807d-401f-884a-a47a80cc8a1e +Openstack-Request-Id: req-5b40f2a2-5052-4ce6-9a58-e18adc4e0e0e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:11.647086+00:00", "updated_at": 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.14 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/portgroups?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-588a589f-084d-4414-a093-f15b3d54eedc +Openstack-Request-Id: req-3e909ef2-5a25-42f6-a3e1-05fcbaa39df1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.15 +X-Openstack-Ironic-Api-Version: 1.25 {"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': {'vif_port_id': '4b3175fd-0630-4b5d-be09-5e5dd2ba6da7'}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, '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-3354b4b6-d17a-43aa-90d2-39589c3aca63 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "4b3175fd-0630-4b5d-be09-5e5dd2ba6da7"}, "internal_info": {"tenant_vif_port_id": "4b3175fd-0630-4b5d-be09-5e5dd2ba6da7"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:12.042133+00:00", "updated_at": null} -GET: /v1/portgroups/detail {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_same -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_same ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist ... ok -ironic.tests.unit.api.controllers.v1.test_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_types.TestJsonPatchType.test_cannot_remove_mandatory_attr -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_remove_mandatory_attr ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name -ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_invalid_name ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_invalid_uuid_or_name -ironic.tests.unit.api.controllers.v1.test_types.TestUuidOrNameType.test_invalid_uuid_or_name ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_pin -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_port_physical_network_pin ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups_subcontrollers -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups_subcontrollers ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_driver_detail_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail ... ok -ironic.tests.unit.api.controllers.v1.test_utils.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_volume_connector.TestPatch.test_replace_invalid_power_state -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid ... ok - -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': 'aa:aa:aa:11:22:33', 'extra': {}, 'internal_info': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'foo', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:08.782836+00:00', 'updated_at': None} -GET: /v1/lookup?node_uuid=e2b26147-3312-438b-b303-d5a9a67c5188 {} -GOT:{'node': {'uuid': 'e2b26147-3312-438b-b303-d5a9a67c5188', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/e2b26147-3312-438b-b303-d5a9a67c5188', 'rel': 'self'}, {'href': 'http://localhost/nodes/e2b26147-3312-438b-b303-d5a9a67c5188', '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}} -PATCH: /v1/volume/connectors/ea105565-85a0-4455-84e9-b2b1ac052dad [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +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-33071be6-d0d5-4c0b-912e-dafb6d19bebf +Openstack-Request-Id: req-7740f7f1-1c97-4ab5-bf6d-d474721e400a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector ea105565-85a0-4455-84e9-b2b1ac052dad 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': {}} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} +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-ccefbe54-510d-4b24-a576-6a72e226a9c2 +Openstack-Request-Id: req-d3ca4579-6fe9-49f8-abf5-4ff480a0e565 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"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'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/internal_info' is an internal attribute and can not be updated\", \"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/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-dc121bea-251d-4695-be7c-2f3eb42386cc -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-456", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.825417+00:00", "updated_at": null} -POST: /v1/volume/connectors {'uuid': 'f91a3567-4e89-4d85-bb0c-0cf7f20769e1', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-219b8f22-2c69-4a2d-a2cc-a442edf0a599 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A volume connector with type iqn and connector ID test-connector-id-456 already exists.\", \"debuginfo\": null}"} -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-76a30b3a-940a-4cbd-84a5-d1c002c736c4 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-f43d91f1-d4ef-4bf6-86ee-b7aab54b4e44 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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/volume/targets?detail=True {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.26 +{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "802.3ad", "properties": {"bond_prop": 123}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:03.808086+00:00", "updated_at": null} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=af3dccf7-a6f8-4ae0-a839-810ef44767e5 {} +GOT:{'node': {'uuid': 'af3dccf7-a6f8-4ae0-a839-810ef44767e5', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/af3dccf7-a6f8-4ae0-a839-810ef44767e5', 'rel': 'self'}, {'href': 'http://localhost/nodes/af3dccf7-a6f8-4ae0-a839-810ef44767e5', '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}} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0a560112-e797-4003-bb3a-74f194193edd +Openstack-Request-Id: req-ece78597-90d0-4c9b-8c93-cfd919452536 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"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-13688beb-384f-4bf8-8cdd-07f849290b08 +Openstack-Request-Id: req-d8a38d19-fead-496e-bed7-c0e2c49d585f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} -GET: / {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-23df634c-8028-48cb-ba67-f719a383d062 -{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-294925af-ccb4-4c0f-b2dc-b4b9e9ca86f7 -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -Malformed option m1key1=value1 - -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:16.917799+00:00', 'updated_at': None} -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'}]} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-123", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.938209+00:00", "updated_at": null} +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-7b62031a-4ed7-493a-aa0e-3e26b6529227 +Openstack-Request-Id: req-4d3045f7-8313-4298-874e-5e06af5ec2f5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} -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-c9bce151-7e41-4cad-8523-749048f53b18 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'value': '1', 'op': 'replace'}] +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-5f8795f0-b30d-4868-b4c8-0045f51d3e22 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'replace', 'value': '1'}]'. Reason: can't replace non-existent object 'node_id'\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-3051af4d-7fed-4886-8ef8-afd3de14f491 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz", "tenant_vif_port_id": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:17.167726+00:00", "updated_at": "2023-01-07T00:10:17.214376+00:00"} -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-0807c640-0d11-409b-8226-27a9296b0a96 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "aa:aa:aa:11:22:33", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:17.273466+00:00", "updated_at": null} -POST: /v1/portgroups {'uuid': 'fd1a497f-15c4-45f1-9e41-4e6f76578e35', 'name': '84bae3c4-8e4f-4f7e-9665-8308a64ead45', '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-3e4571b5-70d1-4bc5-8989-e9d9801a58a7 +Openstack-Request-Id: req-8e2643ee-f4c6-4014-8ae6-311e8594d851 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"} -GET: /v1/ {} -GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], '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'}]} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/value', 'op': 'remove'}]'. Reason: can't remove non-existent object 'value'\", \"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-113bdc92-54c3-49fd-8d95-4ace175483dc +Openstack-Request-Id: req-c1c67aba-6839-4554-9c16-b08a36f0de6d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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}"} -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 204 No Content -Openstack-Request-Id: req-39b1c7c2-ce02-405a-b2c2-92205ce5e01f -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 - -GET: /v1/volume/targets/detail {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} +PATCH: /v1/volume/connectors/b36db9dd-8abd-41f6-9144-69d46079a017 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-5b201386-1d02-4575-9b83-7c3afc7c25c4 +Openstack-Request-Id: req-5ebd3237-a8a5-47e7-9d34-b04209008e2b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute target_uuid. Value: 'detail'. unable to convert to uuid. Error: Expected a UUID but received detail.\", \"debuginfo\": null}"}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.test_audit.TestAuditMiddleware.test_disable_audit_request -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ... ok -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure ... ok -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__config_auth ... ok -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_code -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_code ... 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_isolinux_image_for_uefi -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_uefi ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_backing_file_present ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_no_img_src ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance ... ok -ironic.tests.unit.common.test_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.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_cleaning ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_create_some_ports_fail ... ok -ironic.tests.unit.common.test_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.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network_not_all_pxe_enabled ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_less_than_configured ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get ... 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.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.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_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_size_gb ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure ... 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_hash_file_for_md5 -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_md5 ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac ... 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.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.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked ... ok -ironic.tests.unit.conductor.test_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.conductor.test_manager.CreatePortTestCase.test_create_port -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... ok -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked ... 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.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test__do_next_deploy_step_last_step_done ... 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.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_no_steps ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_automated_cache_bios ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios_exception ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_manual_abort_last_clean_step ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_all ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue ... ok -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_maintenance ... ok -ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify -ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify ... 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_timeout -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ... 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.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param ... ok -ironic.tests.unit.conductor.test_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.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_all ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non ... ok -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_part ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state_old -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_error_state_old ... 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.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.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ... ok -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits_replace ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception ... ok -ironic.tests.unit.conductor.test_task_manager.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.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_provision_error_handler_other_error ... ok -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__get_cleaning_steps_unsorted ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach ... ok -ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode -ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_non_existent_mode ... ok -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_trait_type -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_parse_instance_info_traits_invalid_trait_type ... ok -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_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_unset_empty_node_traits -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_with_filters ... ok -ironic.tests.unit.db.test_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.db.test_nodes.DbNodeTestCase.test_update_node_provision -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node_uuid ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok -ironic.tests.unit.db.test_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.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address_invalid_ip ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ... ok -ironic.tests.unit.drivers.modules.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.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.cimc.test_management.CIMCManagementTestCase.test_get_sensors_data -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_sensors_data ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on_timeout -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on_timeout ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_off_ok ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change -ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_completed ... 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.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.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.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.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk_fail ... ok - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': 'class2', 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'network_interface': 'flat', 'updated_at': None, 'created_at': '2023-01-07T00:10:03.192258+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '6a2d690b-fb80-421f-81a2-323e39a7de5c', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c -Openstack-Request-Id: req-e0bdaa7c-f893-4adb-a8e1-ee246cc57798 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "6a2d690b-fb80-421f-81a2-323e39a7de5c", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c", "rel": "self"}, {"href": "http://localhost/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/ports", "rel": "self"}, {"href": "http://localhost/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/volume", "rel": "self"}, {"href": "http://localhost/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/states", "rel": "self"}, {"href": "http://localhost/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c {} -GOT:{'uuid': '6a2d690b-fb80-421f-81a2-323e39a7de5c', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c', 'rel': 'self'}, {'href': 'http://localhost/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6a2d690b-fb80-421f-81a2-323e39a7de5c/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '2e327c8d-1dcb-461d-be9c-3b38511f82ea', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/2e327c8d-1dcb-461d-be9c-3b38511f82ea -Openstack-Request-Id: req-0ce625ba-b113-44f3-ab97-a060c06ba84d -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "2e327c8d-1dcb-461d-be9c-3b38511f82ea", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea", "rel": "self"}, {"href": "http://localhost/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/ports", "rel": "self"}, {"href": "http://localhost/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/volume", "rel": "self"}, {"href": "http://localhost/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/states", "rel": "self"}, {"href": "http://localhost/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea {} -GOT:{'uuid': '2e327c8d-1dcb-461d-be9c-3b38511f82ea', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e327c8d-1dcb-461d-be9c-3b38511f82ea/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '6057a186-e051-421b-81a0-6ac5317cdc34', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/6057a186-e051-421b-81a0-6ac5317cdc34 -Openstack-Request-Id: req-46729b95-9e94-4c3e-9b8c-3710dd9c9ccf -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "6057a186-e051-421b-81a0-6ac5317cdc34", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34", "rel": "self"}, {"href": "http://localhost/nodes/6057a186-e051-421b-81a0-6ac5317cdc34", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/ports", "rel": "self"}, {"href": "http://localhost/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/volume", "rel": "self"}, {"href": "http://localhost/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/states", "rel": "self"}, {"href": "http://localhost/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34 {} -GOT:{'uuid': '6057a186-e051-421b-81a0-6ac5317cdc34', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34', 'rel': 'self'}, {'href': 'http://localhost/nodes/6057a186-e051-421b-81a0-6ac5317cdc34', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6057a186-e051-421b-81a0-6ac5317cdc34/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '670aabff-54ab-4e2a-8cef-d9706f7ea706', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/670aabff-54ab-4e2a-8cef-d9706f7ea706 -Openstack-Request-Id: req-79a84fe3-9362-46e4-8930-9e463745c55e -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "670aabff-54ab-4e2a-8cef-d9706f7ea706", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706", "rel": "self"}, {"href": "http://localhost/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/ports", "rel": "self"}, {"href": "http://localhost/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/volume", "rel": "self"}, {"href": "http://localhost/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/states", "rel": "self"}, {"href": "http://localhost/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706 {} -GOT:{'uuid': '670aabff-54ab-4e2a-8cef-d9706f7ea706', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706', 'rel': 'self'}, {'href': 'http://localhost/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/670aabff-54ab-4e2a-8cef-d9706f7ea706/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '187fe829-1f85-4571-bfcd-e0ee31e8cfcf', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf -Openstack-Request-Id: req-2eb5b8ae-2b91-46ca-8b48-7276d790ff23 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "187fe829-1f85-4571-bfcd-e0ee31e8cfcf", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf", "rel": "self"}, {"href": "http://localhost/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/ports", "rel": "self"}, {"href": "http://localhost/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/volume", "rel": "self"}, {"href": "http://localhost/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/states", "rel": "self"}, {"href": "http://localhost/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf {} -GOT:{'uuid': '187fe829-1f85-4571-bfcd-e0ee31e8cfcf', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf', 'rel': 'self'}, {'href': 'http://localhost/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/187fe829-1f85-4571-bfcd-e0ee31e8cfcf/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': 'f527c7f0-fe30-46f2-9326-7185c26c6865', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/f527c7f0-fe30-46f2-9326-7185c26c6865 -Openstack-Request-Id: req-23a3911f-6e5d-42c4-8adf-7878051f08ef -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "f527c7f0-fe30-46f2-9326-7185c26c6865", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865", "rel": "self"}, {"href": "http://localhost/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/ports", "rel": "self"}, {"href": "http://localhost/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/volume", "rel": "self"}, {"href": "http://localhost/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/states", "rel": "self"}, {"href": "http://localhost/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865 {} -GOT:{'uuid': 'f527c7f0-fe30-46f2-9326-7185c26c6865', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865', 'rel': 'self'}, {'href': 'http://localhost/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f527c7f0-fe30-46f2-9326-7185c26c6865/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '3607b21e-9b11-4f32-bca9-dc3ffe621c65', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/3607b21e-9b11-4f32-bca9-dc3ffe621c65 -Openstack-Request-Id: req-64580389-7048-4fae-8780-a3238d36c9c8 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "3607b21e-9b11-4f32-bca9-dc3ffe621c65", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65", "rel": "self"}, {"href": "http://localhost/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/ports", "rel": "self"}, {"href": "http://localhost/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/volume", "rel": "self"}, {"href": "http://localhost/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/states", "rel": "self"}, {"href": "http://localhost/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65 {} -GOT:{'uuid': '3607b21e-9b11-4f32-bca9-dc3ffe621c65', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65', 'rel': 'self'}, {'href': 'http://localhost/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/3607b21e-9b11-4f32-bca9-dc3ffe621c65/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': 'a49de71d-efdf-440e-95b4-ca3555a9bc30', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/a49de71d-efdf-440e-95b4-ca3555a9bc30 -Openstack-Request-Id: req-0b71c68e-c081-4ab3-8f2b-6adf8b973b10 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "a49de71d-efdf-440e-95b4-ca3555a9bc30", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30", "rel": "self"}, {"href": "http://localhost/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/ports", "rel": "self"}, {"href": "http://localhost/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/volume", "rel": "self"}, {"href": "http://localhost/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/states", "rel": "self"}, {"href": "http://localhost/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30 {} -GOT:{'uuid': 'a49de71d-efdf-440e-95b4-ca3555a9bc30', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49de71d-efdf-440e-95b4-ca3555a9bc30/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': 'a0086b5b-7d10-497a-9ce7-99efd8421180', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180 -Openstack-Request-Id: req-c9152e97-dbea-4f77-922c-e739bbc0b005 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "a0086b5b-7d10-497a-9ce7-99efd8421180", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180", "rel": "self"}, {"href": "http://localhost/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/ports", "rel": "self"}, {"href": "http://localhost/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/volume", "rel": "self"}, {"href": "http://localhost/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/states", "rel": "self"}, {"href": "http://localhost/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180 {} -GOT:{'uuid': 'a0086b5b-7d10-497a-9ce7-99efd8421180', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180', 'rel': 'self'}, {'href': 'http://localhost/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a0086b5b-7d10-497a-9ce7-99efd8421180/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '1b347aab-d5fb-477d-b0cb-ef6afd0d81e9', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9 -Openstack-Request-Id: req-8d8eda49-af62-4a18-9932-f85b446328a6 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "1b347aab-d5fb-477d-b0cb-ef6afd0d81e9", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9", "rel": "self"}, {"href": "http://localhost/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/ports", "rel": "self"}, {"href": "http://localhost/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/volume", "rel": "self"}, {"href": "http://localhost/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/states", "rel": "self"}, {"href": "http://localhost/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9 {} -GOT:{'uuid': '1b347aab-d5fb-477d-b0cb-ef6afd0d81e9', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9', 'rel': 'self'}, {'href': 'http://localhost/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1b347aab-d5fb-477d-b0cb-ef6afd0d81e9/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': '4e402119-542b-416a-a4ea-c9569b98c18f', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/4e402119-542b-416a-a4ea-c9569b98c18f -Openstack-Request-Id: req-39c1afa0-4cd9-4270-ac60-4959440653ef -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "4e402119-542b-416a-a4ea-c9569b98c18f", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f", "rel": "self"}, {"href": "http://localhost/nodes/4e402119-542b-416a-a4ea-c9569b98c18f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/ports", "rel": "self"}, {"href": "http://localhost/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/volume", "rel": "self"}, {"href": "http://localhost/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/states", "rel": "self"}, {"href": "http://localhost/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f {}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers ... ok - -GOT:{'uuid': '4e402119-542b-416a-a4ea-c9569b98c18f', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e402119-542b-416a-a4ea-c9569b98c18f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e402119-542b-416a-a4ea-c9569b98c18f/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -POST: /v1/nodes {'name': None, 'uuid': 'be67f3b1-727c-41c1-a1e1-1240029c5190', 'conductor_group': '', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': 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/be67f3b1-727c-41c1-a1e1-1240029c5190 -Openstack-Request-Id: req-f47a0fc6-1154-4721-a354-7737a3d6c1ad -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "be67f3b1-727c-41c1-a1e1-1240029c5190", "instance_uuid": null, "name": null, "power_state": null, "target_power_state": null, "last_error": null, "provision_state": "enroll", "reservation": null, "provision_updated_at": null, "inspection_finished_at": null, "inspection_started_at": null, "maintenance": false, "maintenance_reason": null, "target_provision_state": null, "console_enabled": false, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "clean_step": {}, "raid_config": {}, "target_raid_config": {}, "extra": {}, "resource_class": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "links": [{"href": "http://localhost/v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190", "rel": "self"}, {"href": "http://localhost/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/ports", "rel": "self"}, {"href": "http://localhost/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/volume", "rel": "self"}, {"href": "http://localhost/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/states", "rel": "self"}, {"href": "http://localhost/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/states", "rel": "bookmark"}], "boot_interface": "fake", "console_interface": "fake", "deploy_interface": "fake", "inspect_interface": "fake", "management_interface": "fake", "network_interface": "flat", "power_interface": "fake", "raid_interface": "fake", "rescue_interface": "fake", "storage_interface": "noop", "vendor_interface": "fake", "traits": [], "bios_interface": "fake", "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190 {} -GOT:{'uuid': 'be67f3b1-727c-41c1-a1e1-1240029c5190', 'instance_uuid': None, 'name': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': 'enroll', 'reservation': None, 'provision_updated_at': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'clean_step': {}, 'raid_config': {}, 'target_raid_config': {}, 'extra': {}, 'resource_class': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'links': [{'href': 'http://localhost/v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190', 'rel': 'self'}, {'href': 'http://localhost/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/be67f3b1-727c-41c1-a1e1-1240029c5190/states', 'rel': 'bookmark'}], 'boot_interface': 'fake', 'console_interface': 'fake', 'deploy_interface': 'fake', 'inspect_interface': 'fake', 'management_interface': 'fake', 'network_interface': 'flat', 'power_interface': 'fake', 'raid_interface': 'fake', 'rescue_interface': 'fake', 'storage_interface': 'noop', 'vendor_interface': 'fake', 'traits': [], 'bios_interface': 'fake', 'updated_at': None, 'created_at': '2000-01-01T00:00:00+00:00'} -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-7d753dde-9329-4795-9a89-3fcbe40e0037 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"active\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"manageable\\\".\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_managed_state ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_invalid_timeout_no_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_port.TestListPorts.test_detail_query -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove ... 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 - -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-0390ced4-cdf5-44c2-839d-ca2fcd21ca5c -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector b36db9dd-8abd-41f6-9144-69d46079a017 could not be found.\", \"debuginfo\": null}"} +GET: /v1/volume/targets {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b8ad12a4-cbcf-424a-8f1e-9031df821062 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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': 'manage'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-5bbc64db-1c42-429e-a82e-b948ad1f4c6b -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.4 - -PUT: /v1/nodes/node-39/states/power {'target': 'power on'} +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3970516b-144d-42a6-a859-ee2aa44b0cf1 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-f516e805-5f39-4392-acb5-ddd0f5b73085 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +func1() migrated 10 of 10 objects. +func2() migrated 0 of 0 objects. +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_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_no_ipmitool ... ok +ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_with_inspector_interface_enabled +ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_with_inspector_interface_enabled ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent ... ok +ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_direct +ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_direct ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_wdi +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_wdi ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_tftp_images_master_path +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_tftp_images_master_path ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail ... ok +ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_iscsi +ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_iscsi ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_without_is_whole_disk_image +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_without_is_whole_disk_image ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ... ok +ironic.tests.unit.drivers.test_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.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_store_ramdisk_logs_swift +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options ... ok +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot ... 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.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.test_utils.UtilsTestCase.test_normalize_mac_string +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_normalize_mac_string ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off ... ok +ironic.tests.unit.objects.test_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.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_sync_node_setting_delete_nochange ... ok +ironic.tests.unit.drivers.modules.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.objects.test_conductor.TestConductorObject.test_refresh +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ... 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.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value +ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ... ok +ironic.tests.unit.drivers.modules.test_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.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.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_warm ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ... 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_timing +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing ... 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.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__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_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.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_provision_state_payload ... ok +ironic.tests.unit.drivers.modules.test_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.objects.test_objects.TestObject.test__from_db_object_old +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old ... ok +ironic.tests.unit.drivers.modules.test_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.objects.test_objects.TestObject.test_as_dict_with_nested_object +ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object ... ok +ironic.tests.unit.drivers.modules.test_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.objects.test_objects.TestObject.test_base_attributes +ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ... 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.objects.test_objects.TestObject.test_get +ironic.tests.unit.objects.test_objects.TestObject.test_get ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_hydration +ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size_whole_disk_image ... 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.objects.test_objects.TestObject.test_obj_constructor +ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor ... ok +ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all +ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all ... ok +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_username +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_username ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem ... 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_trait.TestTraitObject.test_create_list +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_create ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue ... ok +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device ... ok -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-93801602-b838-4950-a886-3d866cb3cf6d -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-463b734c-2159-43c7-af48-a7f2db1ed414 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/provision {'target': 'rebuild', 'configdrive': 'foo'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-54052932-6494-47f0-b835-d69082f08945 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/node-39/states/console {'enabled': 'true'} +GOT:{'connectors': []} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d810d337-3ac8-4ae3-a0b4-4b8b94d2e6c4 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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': 'false'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -Openstack-Request-Id: req-cf875ec8-8034-43c1-9c2d-27e768874f2a -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {'reason': 'fake'} -GOT:Response: 500 Internal Server Error +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/volume/connectors {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-a27958fa-11dc-46ad-b618-b899fffc4d06 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:{'traits': ['CUSTOM_1', 'CUSTOM_2']} -PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} -GOT:Response: 204 No Content -Openstack-Request-Id: req-2e1a598a-66fe-4f5b-b38e-1caad8f50aef -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.37 - -GET: /v1/ports?detail=True {} -GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'pxe_enabled': False, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'port_id': 'Gig0/1'}, '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'}], 'created_at': '2023-01-07T00:10:27.984745+00:00', 'updated_at': None}]} -GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} -GOT:{'ports': [{'uuid': '8a9027b0-1293-4d46-9c46-ba249867df73', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/8a9027b0-1293-4d46-9c46-ba249867df73', 'rel': 'self'}, {'href': 'http://localhost/ports/8a9027b0-1293-4d46-9c46-ba249867df73', 'rel': 'bookmark'}]}]} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '67e748e4-48d8-473d-a19e-1315184039ce', 'op': 'remove'}] +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +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-68da1790-3336-4e97-b020-b9bdf4d3fe62 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.24 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null, "pxe_enabled": true, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:28.113831+00:00", "updated_at": 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, '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-a43a97fe-6068-4179-abaa-928ac7bc3983 +Openstack-Request-Id: req-183a38a4-543f-48b8-ba8e-899ead9ff75c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_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_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_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_portgroup.TestListPortgroups.test_detail_using_query_old_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.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.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_types.TestBooleanType.test_valid_false_values -ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_valid_false_values ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_dict_attr -ironic.tests.unit.api.controllers.v1.test_types.TestJsonPatchType.test_cannot_update_internal_dict_attr ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring -ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_apimultitype_tostring ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_mandatory_key -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type_missing_mandatory_key ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_node_rebuild_with_configdrive -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_node_rebuild_with_configdrive ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_storage_interface -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_storage_interface ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_by_conductor_group ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_fail -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_filter_driver_type_fail ... 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.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.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 - -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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 409 Conflict +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.227462+00:00", "updated_at": null} +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-dc389b8c-f00f-4642-9590-cc074ec63286 +Openstack-Request-Id: req-c724fa0d-2c7a-475d-bebf-b43964cd1682 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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 port group because either 'extra/vif_port_id' was specified or 'pxe_enabled' 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, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} -GOT:Response: 406 Not Acceptable +{"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': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-711a015a-a1b9-409d-b33b-87c2fb162b00 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 406 Not Acceptable +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-9a22b26d-03d0-4495-affe-de7bcc12a7d7 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-f5fa6eb5-09be-44d2-a774-9139f6ebef25 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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}"} -GET: /v1/portgroups?detail=True {} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None} +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +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-873796d1-776e-4a1d-9ec8-74722917d975 +Openstack-Request-Id: req-9fff9942-fa4a-4fe9-9ad5-38a3f0878007 X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} -GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'name': 'pg.json', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:35.268757+00:00', 'updated_at': None} -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'}]}]} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] +GET: /v1/volume/targets {} +GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} +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-24c8c50d-4576-4772-8504-a87a1b7e5b35 +Openstack-Request-Id: req-ba00cab9-be70-4b6f-b36c-05142d580311 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:35.394059+00:00", "updated_at": null} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'op': 'remove'}] -GOT:Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo1": "bar1", "foo2": "bar2", "foo3": "bar3"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:05.959396+00:00", "updated_at": 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-d4c93078-efa3-47f9-a5f8-a18d68a31e03 +Openstack-Request-Id: req-54d95eeb-1ebb-4a46-b218-201d8a8aec58 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": null, "extra": {}, "internal_info": {"bar": "buzz"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "name": "pg.1", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:35.474444+00:00", "updated_at": null} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/boot_index' is a mandatory attribute and can not be removed\", \"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: 500 Internal Server Error Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-d3e6b681-eeb8-4981-8323-cf650a0d5a2f +Openstack-Request-Id: req-9891ffcf-72b9-4e65-b08e-1373ed7c7b37 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "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"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:35.570586+00:00", "updated_at": null} -GET: /v1/volume/ {} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-54de4e63-b7ba-4865-9fca-b948a12faa49 +{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: /v1/ {} +GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], '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'}]} +Data migrations have not completed. Please re-run. +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_rescue ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_kernel +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_kernel ... 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_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_kernel +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_kernel ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare ... 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.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_properties ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_off ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_off ... ok +ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ... 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_get_node_capability_returns_none +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased ... ok +ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value +ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ... 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.objects.test_objects.TestMisc.test_max_version_one +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one ... 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_get_target_version_pinned_bad +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_load +ironic.tests.unit.objects.test_objects.TestObject.test_load ... 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_iterables +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ... 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_volume_connector.TestVolumeConnectorObject.test_list +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ... ok + +GET: /v1/lookup?node_uuid=fb834484-5afd-46ef-a84b-dba52c1b25d2 {} +GOT:{'node': {'uuid': 'fb834484-5afd-46ef-a84b-dba52c1b25d2', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/fb834484-5afd-46ef-a84b-dba52c1b25d2', 'rel': 'self'}, {'href': 'http://localhost/nodes/fb834484-5afd-46ef-a84b-dba52c1b25d2', '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}} +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-be770053-094f-4ac1-b41d-a66d51456f7d +Openstack-Request-Id: req-e2a21233-f691-4059-bd0b-d5d86e617b5b X-Openstack-Ironic-Api-Maximum-Version: 1.46 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/volume/connectors/98038bd6-bfe8-46da-aa30-044031956059 {}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_volume_connector.TestPatch.test_replace_node_uuid_invalid_type -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_ilo_error -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_with_ilo_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance ... ok - -GOT:{'uuid': '98038bd6-bfe8-46da-aa30-044031956059', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/98038bd6-bfe8-46da-aa30-044031956059', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/98038bd6-bfe8-46da-aa30-044031956059', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:36.836886+00:00', 'updated_at': None} -GET: /v1/volume/connectors/98038bd6-bfe8-46da-aa30-044031956059 {} -GOT:{'uuid': '98038bd6-bfe8-46da-aa30-044031956059', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/98038bd6-bfe8-46da-aa30-044031956059', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/98038bd6-bfe8-46da-aa30-044031956059', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:36.836886+00:00', 'updated_at': None} -GET: /volume/connectors/98038bd6-bfe8-46da-aa30-044031956059 {} -GOT:{'uuid': '98038bd6-bfe8-46da-aa30-044031956059', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/98038bd6-bfe8-46da-aa30-044031956059', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/98038bd6-bfe8-46da-aa30-044031956059', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:36.836886+00:00', 'updated_at': None} -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-735644bc-5343-443d-bed9-95e1b9ec1876 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"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-8bdc543a-3d96-435b-b590-c580de26d524 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=ecc1f482-7712-40b0-aac1-9e8c6f730b49 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-edfdd642-dacf-4f04-b813-bd0b90d4956c +Openstack-Request-Id: req-38d96949-3beb-43c7-aea9-de6a74371112 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} -GET: /v1/volume/targets/74b81775-e0ac-478d-a786-ea50da8ac768 {} -GOT:{'uuid': '74b81775-e0ac-478d-a786-ea50da8ac768', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/74b81775-e0ac-478d-a786-ea50da8ac768', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/74b81775-e0ac-478d-a786-ea50da8ac768', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:39.271302+00:00', 'updated_at': None} -GET: /v1/volume/targets/74b81775-e0ac-478d-a786-ea50da8ac768 {} -GOT:{'uuid': '74b81775-e0ac-478d-a786-ea50da8ac768', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/74b81775-e0ac-478d-a786-ea50da8ac768', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/74b81775-e0ac-478d-a786-ea50da8ac768', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:39.271302+00:00', 'updated_at': None} -GET: /volume/targets/74b81775-e0ac-478d-a786-ea50da8ac768 {} -GOT:{'uuid': '74b81775-e0ac-478d-a786-ea50da8ac768', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/74b81775-e0ac-478d-a786-ea50da8ac768', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/74b81775-e0ac-478d-a786-ea50da8ac768', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:39.271302+00:00', 'updated_at': None} -GET: /v1/volume/targets {} -GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': '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?sort_key=foo {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource 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-e119291e-2cf8-42a9-8717-1654eb19575d +Openstack-Request-Id: req-d97411bf-40cc-422f-801a-5dca12a1a9a3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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 {} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "test-connector-id-999", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:10.560367+00:00", "updated_at": null} +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-65d9330c-e7fa-4e20-9208-40c92513f113 +Openstack-Request-Id: req-64ecebb9-3e86-4984-8ecb-68431f4b967b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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 {} +{"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': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-62ef40d8-6e81-4494-ac51-febe446253a7 +Openstack-Request-Id: req-9193f25f-1db3-4b92-8ef9-0747890b64a9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 0, 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} +GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c9ae0222-ee55-4582-a281-86bdbbd2f630 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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}"} -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 +Openstack-Request-Id: req-66700ae4-0774-45c6-b8b9-8e063ad14c15 +{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: / {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Location: http://localhost/v1/volume/targets/405600a1-025a-4ba4-8990-f3cd1ce07f91 -Openstack-Request-Id: req-a7599157-6767-4a81-828b-7d837435645e -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "405600a1-025a-4ba4-8990-f3cd1ce07f91", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/405600a1-025a-4ba4-8990-f3cd1ce07f91", "rel": "self"}, {"href": "http://localhost/volume/targets/405600a1-025a-4ba4-8990-f3cd1ce07f91", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:39.508898+00:00", "updated_at": null} -GET: /v1/volume/targets/405600a1-025a-4ba4-8990-f3cd1ce07f91 {}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.test_acl.TestACL.test_public_api -ironic.tests.unit.api.test_acl.TestACL.test_public_api ... ok -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached ... ok -ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary -ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one ... ok -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not ... ok -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set ... ok -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed ... ok -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache ... ok -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 ... ok -ironic.tests.unit.common.test_image_service.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_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_uefi_rootfs_fails ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service_force_raw ... ok -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth ... ok -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_on_webserver -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_on_webserver ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config_no_extra_volumes ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir ... 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.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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_InvalidParam ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails ... ok -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_url -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_valid_url ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_throws_for_invalid_or_unsupported_hash -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_throws_for_invalid_or_unsupported_hash ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ... 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.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.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.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_base_manager.StartStopTestCase.test_stop_unregisters_conductor -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_unregisters_conductor ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_not_supported ... ok -ironic.tests.unit.drivers.modules.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_verify_image_checksum -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_verify_image_checksum ... 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.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_file_based_me ... ok -ironic.tests.unit.drivers.modules.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.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_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.BootDeviceTestCase.test_set_boot_device_validate_fail -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_calls__download_fw_to ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_fail_invalid_format ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_swift_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__update_firmware_sum_final_unknown_exception ... 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.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_clean_step_foreach_url -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_clean_step_foreach_url ... 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.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_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.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.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.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_complete_cleaning ... ok -ironic.tests.unit.conductor.test_manager.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.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.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone -ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_portgroup_first ... ok -ironic.tests.unit.drivers.modules.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.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps -ironic.tests.unit.conductor.test_manager.DoNextDeployStepTestCase.test_do_next_deploy_step_no_steps ... 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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ... ok -ironic.tests.unit.drivers.modules.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.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_next_clean_step_manual_fail_in_tear_down_cleaning ... ok -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_instance_uuid -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_instance_uuid ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_network_validate_fail ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_vif_extra ... 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.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_validate_boot_option_netboot_no_exc -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_boot_option_netboot_no_exc ... 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.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_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.oneview.test_common.OneViewCommonTestCase.test__validate_node_server_hardware_type -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_node_server_hardware_type ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_false -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_false ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_no_server_profile -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_oneview_no_server_profile ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_has_sp_applied -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_has_sp_applied ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_true -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test__is_onetime_boot_true ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_unknown_device -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device_unknown_device ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_invalid_device -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_invalid_device ... 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.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_on -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_on ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate ... 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.oneview.test_power.OneViewPowerDriverTestCase.test_validate_missing_parameter -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate_missing_parameter ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance -ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_power_state_sync_max_retries_gps_exception ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set ... 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.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.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test__check_inspect_wait_timeouts ... ok -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting_old ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ... ok +Openstack-Request-Id: req-f4b6a13c-85d2-40c7-82bc-ca1bf4e7c658 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} +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_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_value_verify_ca ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_path_verify_ca ... ok +ironic.tests.unit.drivers.modules.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_validate_success_no_settings +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies ... ok +ironic.tests.unit.drivers.modules.test_agent.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_raw_stream_enabled +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_netboot +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_prepare_instance_to_boot_netboot ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_deprecated +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_deprecated ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state ... ok +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra +ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_vif_port_id_extra ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_disk_label +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_disk_label ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_bios +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_localboot_bios ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_partition_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_ipxe_config_partition_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_found ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... 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.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_exec_failed ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_persistent ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_single_bridging ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_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.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_start_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_empty_root_uuid +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_empty_root_uuid ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_no_root_uuid_or_disk_id +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_no_root_uuid_or_disk_id ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_portal_port +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_portal_port ... 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_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_invalid_root_device_hints +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_invalid_root_device_hints ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_dir_path +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_dir_path ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot ... 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_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_ipa_debug +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_ipa_debug ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_no_kernel_no_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_no_kernel_no_ramdisk ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_ramdisk ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_get_failure ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_error ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc ... ok +ironic.tests.unit.drivers.modules.test_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_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_snmp_v3_auth_nokey +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey ... ok ironic.tests.unit.drivers.modules.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.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_fail_logout -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_fail_logout ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict ... ok -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_down -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_down ... 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.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only ... 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.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces -ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage ... ok -ironic.tests.unit.conductor.test_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_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.objects.test_bios.TestBIOSSettingObject.test_create -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ... 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_register_into_group -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group ... ok +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_ok_logout +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsCommonMethodsTestcase.test_requires_ucs_client_ok_logout ... ok +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_connect_ucsm ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_up +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_up ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_fail +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_fail ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_and_wait_for_state_change_fail +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_and_wait_for_state_change_fail ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate ... 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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_properties ... 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.objects.test_conductor.TestConductorObject.test_register_into_group_with_update ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister_all_hardware_interfaces ... 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.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.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.objects.test_node.TestConvertToVersion.test_fault_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing ... 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.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.objects.test_objects.TestObject.test__from_db_object_map_version_bad -ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_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_manager.VifTestCase.test_vif_list -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same ... 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.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_unknown_objtype -ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... 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.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.TestConvertToVersion.test_rescue_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove ... 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.TestNodeObject.test_save_with_conductor_group_fail +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_fail ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits ... ok +ironic.tests.unit.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_notification.TestNotificationBase.test_emit_notification +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive +ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... 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.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices ... 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_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_create +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ... 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_trait_names +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ... 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_target.TestVolumeTargetObject.test_refresh +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ... ok +ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked +ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ... ok -PATCH: /v1/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-052ec279-b128-420d-8326-a2fc2ae36fea -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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': '/internal_info', 'value': False, 'op': 'replace'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-862a8fcc-bb4a-4e75-acb2-98cd069f1f6d -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/internal_info' is an internal attribute and can not be updated\", \"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'} +GET: /v1/volume/targets {} +GOT:{'targets': [{'uuid': '74b8fd88-5622-45d5-b35d-e374b009d22c', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/74b8fd88-5622-45d5-b35d-e374b009d22c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/74b8fd88-5622-45d5-b35d-e374b009d22c', 'rel': 'bookmark'}]}, {'uuid': '5cba6819-ab78-4d3a-8853-59a43708272e', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/5cba6819-ab78-4d3a-8853-59a43708272e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5cba6819-ab78-4d3a-8853-59a43708272e', 'rel': 'bookmark'}]}, {'uuid': 'fa858c69-08e1-45f5-b9af-1964fc91a95a', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/fa858c69-08e1-45f5-b9af-1964fc91a95a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/fa858c69-08e1-45f5-b9af-1964fc91a95a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=fa858c69-08e1-45f5-b9af-1964fc91a95a'} +GET: /v1/volume/targets?detail=True {} +GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:07.304528+00:00', 'updated_at': None}]} +GET: /v1/volume/targets?detail=True {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0db9fed3-daf4-4298-bf0d-4c57152f4c72 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -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/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} -GOT:{'node': {'uuid': '35e4c672-8fa2-4292-8ecf-e3054e250492', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/35e4c672-8fa2-4292-8ecf-e3054e250492', 'rel': 'self'}, {'href': 'http://localhost/nodes/35e4c672-8fa2-4292-8ecf-e3054e250492', '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}} -GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=62e4871a-ad12-435e-96ee-176d1803b777 {} -GOT:{'node': {'uuid': '62e4871a-ad12-435e-96ee-176d1803b777', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver_internal_info': {'private_state': 'secret value'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'links': [{'href': 'http://localhost/v1/nodes/62e4871a-ad12-435e-96ee-176d1803b777', 'rel': 'self'}, {'href': 'http://localhost/nodes/62e4871a-ad12-435e-96ee-176d1803b777', '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}} -GET: /v1/volume/connectors {} -GOT:{'connectors': []} -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-4256ebbe-715c-48d1-bde6-f5701a7ea440 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} -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-1de0ffa5-4788-4c1a-9f50-85d2a6eeef24 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/node_id', 'op': 'remove'}]'. Reason: can't remove non-existent object 'node_id'\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +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'}]} +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-8bf5c025-afdc-4b1e-b8ef-965e434cd21a +Openstack-Request-Id: req-4ecf9f47-7864-4802-b5a9-770e479c0e2d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:10.463695+00:00", "updated_at": null} -POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 100, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:07.449901+00:00", "updated_at": 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-44fc5ad6-f434-4b87-95e1-afc330de0827 +Openstack-Request-Id: req-e6efc9c8-b4f5-4088-a12c-64adf4a0fcd1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_id. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-f9c38089-a956-45da-91ee-1f187554880c +Openstack-Request-Id: req-9c7e2957-2d9c-4f95-b902-b7b83facff2b {"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-0c73712a-c3d0-415a-b702-771b192904d7 -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} -func1() migrated 15 of 15 objects. -func2() migrated 20 of 20 objects. -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_topic_for_known_driver ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_unstable ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state -ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_exception_then_lock ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_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_spawn_cleaning_error_handler_other_error -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error ... ok -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps_get_steps_exception ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ... ok -ironic.tests.unit.drivers.modules.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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_storage_attach ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot ... ok -ironic.tests.unit.conductor.test_utils.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.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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_no_portgroup_update ... ok -ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock -ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock ... ok -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ... ok -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces ... 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.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.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.db.test_nodes.DbNodeTestCase.test_reserve_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... 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.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.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.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.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_port_ip_address_cleaning -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning ... 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.dhcp.test_neutron.TestNeutron.test_update_dhcp -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp ... ok -ironic.tests.unit.drivers.modules.drac.test_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.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.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.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid ... ok -ironic.tests.unit.drivers.modules.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.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.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_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status ... 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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_with_ilo_error -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_with_ilo_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_glance_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_boot_from_volume ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_timeout ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__validate_sum_components_fails ... ok -ironic.tests.unit.drivers.modules.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_state_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error ... 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_management.IloManagementTestCase.test__execute_ilo_clean_step_not_supported -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_not_supported ... 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.SNMPValidateParametersTestCase.test__parse_driver_info_apc -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc ... ok -ironic.tests.unit.drivers.modules.test_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.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_checksum_validation_error -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_error_for_checksum_validation_error ... 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.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_disable ... ok -ironic.tests.unit.drivers.modules.test_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_snmp_port -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_port ... 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.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat ... ok -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device_fail -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ... ok -ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper -ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_with_fgi_status_none ... ok -ironic.tests.unit.drivers.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.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_1_and_0 ... ok -ironic.tests.unit.drivers.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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... ok -ironic.tests.unit.drivers.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.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_get_ramdisk_logs_file_name -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ... 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.objects.test_node.TestConvertToVersion.test_rescue_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ... 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.objects.test_node.TestNodeObject.test_release -ironic.tests.unit.objects.test_node.TestNodeObject.test_release ... 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.objects.test_objects.TestObject.test_get_changes_pinned -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ... ok -ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check -ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ... 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.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_address -ironic.tests.unit.objects.test_port.TestPortObject.test_get_bad_id_and_uuid_and_address ... 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_volume_connector.TestVolumeConnectorObject.test_get_by_id -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_novif_nopxe_ports ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix ... ok +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_logout +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_logout ... 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.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.test_base.TestBareDriver.test_class_variables +ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... 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.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_cisco.CiscoUCSManagedHardwareTestCase.test_override_with_cimc_interfaces +ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_override_with_cimc_interfaces ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove ... ok +ironic.tests.unit.objects.test_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_set_no_remove_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_create +ironic.tests.unit.objects.test_node.TestNodeObject.test_create ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas +ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ... 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_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.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_unknown_objtype +ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ... ok +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id ... ok -GET: /v1/volume/connectors {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-27d9e90b-e2cb-4983-ac49-874ad66ea989 +Openstack-Request-Id: req-026e1c44-b843-413d-915d-cd84334609ae X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"debuginfo\": null}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] +{"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}"} +GET: /v1/volume/targets {} +GOT:{'targets': []} +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-5751ba65-9e9b-4f6a-9aed-1082a26dc658 +Openstack-Request-Id: req-94dd6aed-d008-462e-a294-36ebf3cf12f5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} -GET: /v1/volume/targets?node=test-node {} -GOT:{'targets': [{'uuid': 'c12bf8c4-f559-4ccd-b488-cfb2b502d6a0', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/c12bf8c4-f559-4ccd-b488-cfb2b502d6a0', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c12bf8c4-f559-4ccd-b488-cfb2b502d6a0', 'rel': 'bookmark'}]}, {'uuid': '513d0351-53c4-46d7-a8c2-d2a61af12de8', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/513d0351-53c4-46d7-a8c2-d2a61af12de8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/513d0351-53c4-46d7-a8c2-d2a61af12de8', 'rel': 'bookmark'}]}, {'uuid': '6519bbb5-6382-411b-a581-37bbeb3af00f', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/6519bbb5-6382-411b-a581-37bbeb3af00f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6519bbb5-6382-411b-a581-37bbeb3af00f', 'rel': 'bookmark'}]}]} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} +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-ae205d13-01e9-4b8b-bd3f-7f917728420d +Openstack-Request-Id: req-199ab1a9-9691-49bf-a151-4828a87aff86 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 100, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:13.647140+00:00", "updated_at": null} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo1": "bar1x", "foo2": "bar2x", "foo3": "bar3x"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:04.020970+00:00", "updated_at": "2021-12-04T17:54:04.025536+00:00"} +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-10b33482-58b5-4fd6-bea9-b60bdb041107 +Openstack-Request-Id: req-435c02a5-ee9c-4b38-b873-ba0cd2ccf74d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {"foo": "bar"}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:13.744662+00:00", "updated_at": null} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute boot_index. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'power_state': None, 'target_power_state': None, 'last_error': None, 'provision_state': None, 'reservation': None, 'provision_updated_at': None, 'maintenance': False, 'maintenance_reason': None, 'target_provision_state': None, 'console_enabled': False, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'extra': {}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'chassis_uuid': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': None} -GET: /v1/ {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-5e84b427-f9ea-4911-a7d1-4480399e5de0 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "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"}]} -GET: /v1.json {} -GOT:Response: 200 OK +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-7dd2fb8c-3066-43a1-a587-957c9c944594 +Openstack-Request-Id: req-9a61ebe1-5c48-4c9d-a5ab-d20b4a4d9ac7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "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"}]} -GET: /v1.xml {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -Malformed option m1.key1value1 -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_vif_attach_multiple_segment_mappings -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_multiple_segment_mappings ... ok -ironic.tests.unit.drivers.modules.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_flat.TestFlatInterface.test_vif_list -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list ... 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.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.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_mac_type_virtual -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_mac_type_virtual ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_spt -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_spt ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sh -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_sh ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_validate -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_node_is_in_use_by_oneview -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_node_is_in_use_by_oneview ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_false -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_set_boot_device_persistent_false ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_supported_power_states ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_fc_conn_iscsi_target ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal ... ok -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get\", \"debuginfo\": null}"} +func1() migrated 15 of 15 objects. +func2() migrated 20 of 20 objects. +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_volumes_failure ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_skip_root ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_no_manage_agent_boot -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_no_manage_agent_boot ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp_with_address_conf ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_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_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_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image ... ok -ironic.tests.unit.drivers.modules.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_agent.TestAgentDeploy.test_continue_deploy_partition_image +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_partition_image ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_is_done +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_is_done ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_reraise +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net_exc_reraise ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_off_fails +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_off_fails ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue ... 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_finalize_rescue +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue ... 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_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_agent_add_clean_params ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_custom_interface +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_custom_interface ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_missing_steps +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_missing_steps ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_default_value ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_capabilities ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_capabilities ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_bios -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_bios ... 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_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device_raises ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_swap ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_swap ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_pxe_config_partition_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_pxe_config_partition_image ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_up_to_date ... ok -ironic.tests.unit.drivers.modules.test_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.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_no_ipmitool ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_force_set_boot_device_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_off_timeout_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_good ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_pxe_config_partition_image ... 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_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.test_image_cache.TestImageCacheFetch.test__download_image +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image ... 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_master_out_of_date +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_not_uuid ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error ... ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ... 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.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_ok ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_ok ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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_two_calls_to_diff_address +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_prot_version_1_5 ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_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_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.IPMIToolSocatDriverTestCase.test_start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_fail_no_api_url ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_good_api_url ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_ipxe_swift ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_glance_conn_problem ... 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_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_without_is_whole_disk_image -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_without_is_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_volume_type -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_volume_type ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_destroy_images +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_destroy_images ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__save_disk_layout ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_two +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_two ... ok ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_calls_boot_validate ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_calls_boot_validate ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_auth_v1_read ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ... 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_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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_auto_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset ... 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_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_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_on ... 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 u"Backend 'mysql+pymysql' is unavailable: Could not connect" -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.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_unset_node_traits_node_not_exist -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated ... 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.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ... 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.db.test_nodes.DbNodeTestCase.test_update_node_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ... ok -ironic.tests.unit.db.test_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.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.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id ... 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.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_ip_addresses -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" -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.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" -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.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.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_conductor.DbConductorTestCase.test_touch_conductor_deadlock -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock ... 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.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.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag ... ok -ironic.tests.unit.drivers.modules.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.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.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.cimc.test_management.CIMCManagementTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_supported_boot_devices ... 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.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ... 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.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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_id ... ok -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted ... 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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_uuid ... 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.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.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.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.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.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_multiple_jobs_failed ... 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.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ... ok -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_and_finish_deploy_force_reboot ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_without_backing_disks ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_url ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks ... ok -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_set_boot_device ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_missing_parameter -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset_missing_parameter ... 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.cimc.test_power.PowerTestCase.test_set_power_state_on_timeout -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_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 -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_setup_vmedia_for_boot_with_url -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_url ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_hardware_port_not_dict ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_fail -ironic.tests.unit.drivers.modules.cimc.test_power.WaitForStateChangeTestCase.test__wait_for_state_change_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_sum_mode_with_component ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_if_invalid_update_mode_provided -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_throws_if_invalid_update_mode_provided ... 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.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_sensor_method ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso ... ok -ironic.tests.unit.drivers.modules.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.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_0 ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_create_raid_with_raid_5_and_0 ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_in_takeover ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron_missed ... ok -ironic.tests.unit.drivers.modules.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.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.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters ... ok -ironic.tests.unit.drivers.modules.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_management.IloManagementTestCase.test__execute_ilo_clean_step_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test__execute_ilo_clean_step_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.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_secure_boot_keys ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_fails -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_fails ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_cafile -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_hponeview_client_insecure_cafile ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_invalid_device ... ok -ironic.tests.unit.drivers.modules.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.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_cleaning -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_cleaning ... 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.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.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_fail_to_get_server_profile -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_fail_to_get_server_profile ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__commit_raid_config_with_logical_drives ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_with_timeout -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_with_timeout ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_matching_physnet ... ok -ironic.tests.unit.drivers.modules.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.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.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_vif_pxe_noportgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_fail ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent ... ok -ironic.tests.unit.drivers.modules.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.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.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.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure ... 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.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.ucs.test_management.UcsManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_active_node -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_active_node ... ok -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state ... 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.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_cleaning -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare_cleaning ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_raise_exception -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_available_when_raise_exception ... 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.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_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.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic ... 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.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_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_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_write_community ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community ... 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_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.ucs.test_power.UcsPowerTestCase.test_get_power_state_fail -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_fail ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_does_not_have_sp_applied -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_cleaning_when_node_does_not_have_sp_applied ... ok -ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method -ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail ... ok +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_address +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_address ... ok ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_timeout ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_timeout ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_in_use_by_oneview -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_in_use_by_oneview ... 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.objects.test_conductor.TestConductorObject.test_save -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ... 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.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.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value -ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ... 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.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_release_node_not_found -ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_successfuly_allocated_to_ironic -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_prepare_node_is_successfuly_allocated_to_ironic ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve -ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ... ok -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_off -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_reboot_fail_with_hardware_off ... 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.test_snmp.SNMPHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload ... ok -ironic.tests.unit.drivers.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.objects.test_node.TestNodePayloads.test_node_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get_by_node_id ... ok -ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce -ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off_with_timeout -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off_with_timeout ... 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_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_not_found ... 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_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_volume_connector.TestVolumeConnectorObject.test_destroy -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_destroy ... 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.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_node.TestNodePayloads.test_node_crud_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload ... 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.objects.test_node.TestNodePayloads.test_node_set_power_state_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload ... ok -/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 - "instead of warning in version 3.0" % (value,)) -/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 - "instead of warning in version 3.0" % (value,)) -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.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.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ... ok - -GET: /v1/bad/path {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-e3d6695b-a66a-45ba-bed2-baed94a16e58 -{"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\": null}"} -GET: /v1/ {} -GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], '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'}]} -Running batches of 50 until migrations have been completed. -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_get_target_version_pinned_no_myobj -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance -ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid ... 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.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_create -ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ... ok -"max-count" must be a positive value. -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ... ok - -GOT:{'uuid': '405600a1-025a-4ba4-8990-f3cd1ce07f91', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/405600a1-025a-4ba4-8990-f3cd1ce07f91', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/405600a1-025a-4ba4-8990-f3cd1ce07f91', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:39.508898+00:00', 'updated_at': None} -GET: / {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-f23c53f1-de65-4a0e-9074-1aead61d759b -{"name": "OpenStack Ironic API", "description": "Ironic is an OpenStack project which aims to provision baremetal machines.", "versions": [{"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.46", "min_version": "1.1"}], "default_version": {"id": "v1", "links": [{"href": "http://localhost/v1/", "rel": "self"}], "status": "CURRENT", "version": "1.46", "min_version": "1.1"}} -GET: /v1 {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-63f33324-0bd6-42cc-941d-249ecc50b973 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"id": "v1", "media_types": [{"base": "application/json", "type": "application/vnd.openstack.ironic.v1+json"}], "links": [{"href": "http://localhost/v1/", "rel": "self"}, {"href": "https://docs.openstack.org//ironic/latest/contributor//webapi.html", "rel": "describedby", "type": "text/html"}], "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"}]} -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_get_clean_steps ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate_fails_no_rescue_password ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_empty_response -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_empty_response ... 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_validate_invalid_proxies -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies ... 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_by_agent_consumed_memory -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_fail ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_post_clean_step_hook ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state ... 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_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_start_iscsi_target_wipe_disk_metadata -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_start_iscsi_target_wipe_disk_metadata ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_uefi_without_by_arch ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_config -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_config ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_boot_mode_for_deploy_using_instance_info_cap ... 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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonglance_partition_image ... ok -ironic.tests.unit.drivers.modules.test_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_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_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.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_updated_at ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error ... 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_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_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_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_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_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.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_unexpected_fail ... 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_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_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_image_kernel_ramdisk_props ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_timeout -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue_timeout ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_whole_disk_image -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_additional_volume_type -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options_unsupported_additional_volume_type ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_deploy -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_deploy ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_kernel -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_kernel ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure ... ok -ironic.tests.unit.drivers.modules.test_snmp.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_read_community -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_community ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device ... ok -ironic.tests.unit.drivers.modules.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.test_base.PassthruDecoratorTestCase.test_passthru_noexception -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ... ok -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ... ok -ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_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.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set ... ok -ironic.tests.unit.objects.test_node.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.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_save_with_conductor_group -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group ... 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_notification.TestNotificationBase.test_no_emit_notifs_disabled -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled ... ok -ironic.tests.unit.objects.test_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_convert_to_version_old_keep -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep ... 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_load_in_base -ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ... 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.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_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ... ok -ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all -ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_all ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ... ok - -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-755147b6-1e9e-4ecb-862a-ad7bb464c61b -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -Running batches of 50 until migrations have been completed. -Data migrations have completed. -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 u"Backend 'mysql+pymysql' is unavailable: Could not connect" -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old ... ok -ironic.tests.unit.db.test_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.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list ... ok -ironic.tests.unit.db.test_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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups ... ok -ironic.tests.unit.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_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision ... 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.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_uuid ... 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_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.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.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.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints ... ok -ironic.tests.unit.drivers.modules.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.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login -ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleLogin.test_cimc_handle_login ... ok -ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_password -ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_password ... ok -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_validate ... 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.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_fail -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_set_power_state_on_fail ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host_and_drac_address -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_drac_host_and_drac_address ... 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_job.DracJobTestCase.test_validate_job_queue -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue ... ok -ironic.tests.unit.drivers.modules.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.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.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.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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_missing_parameter -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_apply_configuration_missing_parameter ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__clean_up_boot_iso_for_instance_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_MissingParam -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info_MissingParam ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_ramdisk_in_rescuing ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_rescue_glance_image ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_cafile ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ... ok -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version ... skipped u"Backend 'mysql+pymysql' is unavailable: Could not connect" -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to ... ok -ironic.tests.unit.drivers.modules.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.db.test_api.UpgradingTestCase.test_check_versions_node_no_version -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_no_version ... ok -ironic.tests.unit.db.test_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_inspect.IloInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ... 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.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.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list ... ok -ironic.tests.unit.db.test_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_uuid -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ... 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.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... 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_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.db.test_nodes.DbNodeTestCase.test_get_node_by_instance -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist ... ok -ironic.tests.unit.db.test_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.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.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_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_destroy_volume_target ... 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.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_processing_on_any_url_fails -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_doesnt_update_any_if_processing_on_any_url_fails ... 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.redfish.test_power.RedfishPowerTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.ansible.test_deploy.TestAnsibleDeploy.test_clean_up -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_fc_boot_no_connectors ... ok -ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_username -ironic.tests.unit.drivers.modules.cimc.test_common.ParseDriverInfoTestCase.test_parse_driver_info_missing_username ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_bad_command_result ... ok -ironic.tests.unit.drivers.modules.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.cimc.test_management.CIMCManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_properties ... 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.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_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.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.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_job.DracJobTestCase.test_list_unfinished_jobs_fail -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail ... ok -ironic.tests.unit.drivers.modules.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.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_proxies ... 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_not_persistent -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port_extra -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_port_extra ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_multiple_commands ... 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.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_other_commands -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_other_commands ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks ... ok -ironic.tests.unit.drivers.modules.test_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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_noportgroup ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_old_command -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_old_command ... ok -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_invalid_parameter ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off_failed -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off_failed ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_create_use_webserver_true_ramdisk_webserver ... 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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_on_fails -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_on_fails ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_pxe_ports ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios -ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning ... 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_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.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node ... ok -ironic.tests.unit.drivers.modules.test_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.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume ... ok -ironic.tests.unit.drivers.modules.test_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_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_ephemeral_gb ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_disk_label -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_disk_label ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_without_boot_option ... 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.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image -ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_nonsupported_image ... ok -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_spt -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_verify_node_info_missing_spt ... 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_inspector.CheckStatusTestCase.test_exception_ignored -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ... ok -ironic.tests.unit.drivers.modules.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.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.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic_no_server_profile -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_is_node_in_use_by_ironic_no_server_profile ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_get_boot_device ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_good ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_off ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_with_timeout -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_on_with_timeout ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_capabilities_exist ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_true_raises ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system_resource_connection_error_retry ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc -ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_doesnt_upload_firmware ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_tempfile_unknown_exception ... ok -ironic.tests.unit.drivers.modules.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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_no_manage_agent_boot ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report ... ok -ironic.tests.unit.drivers.modules.irmc.test_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.test_agent.TestAgentDeploy.test_deploy_has_started_is_done -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_has_started_is_done ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot_fail -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot_fail ... ok -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_without_raid_config ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_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.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_configure_local_boot ... 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.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_fail_create_raid_without_target_raid_config ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_missing_steps -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_missing_steps ... 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.InstanceInfoTestCase.test__check_disk_layout_unchanged -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_missing_root_gb ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_unicode_swap_mb ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_noportgroup ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_config_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_bad_device ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_standalone_ports ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_in_internal_info ... ok -ironic.tests.unit.drivers.modules.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.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials ... ok -ironic.tests.unit.drivers.modules.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.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_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.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.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_manage_boot_false -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__validate_server_profile_template_manage_boot_false ... 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.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_sh -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test_get_oneview_info_missing_sh ... 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.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_cleaning -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_tear_down_cleaning ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok -ironic.tests.unit.drivers.modules.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.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_when_in_use_by_oneview -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewPeriodicTasks.test_node_stay_manageable_when_in_use_by_oneview ... 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.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy ... ok -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic_node_has_server_profile -ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_allocate_server_hardware_to_ironic_node_has_server_profile ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_invalid_device -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_invalid_device ... ok -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_not_persistent -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_boot_device_not_persistent ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_fail -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_off_fail ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_empty_root_uuid -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_continue_deploy_fail_empty_root_uuid ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_set_power_reboot_with_hardware_off ... 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.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_missing_image_source ... 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_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_wdi -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_swift_wdi ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_local_boot -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_local_boot ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_volume_pxe_options ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_kernel -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_rescue_kernel ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_reset ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_reset ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_reset ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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_pending_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_off ... 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_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_reset_on_delay -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_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_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_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_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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto ... ok -ironic.tests.unit.drivers.modules.test_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_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.ucs.test_power.UcsPowerTestCase.test_get_power_state_error -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_get_power_state_error ... 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.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.ucs.test_power.UcsPowerTestCase.test_reboot -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning ... ok -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate_fail -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate_fail ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_localboot ... 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.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.test_noop.NoInterfacesTestCase.test_inspect -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect ... 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.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_hardware_id ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot ... ok -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_missing_deploy_ramdisk ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ... ok +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_missing_driver_info_and_config ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_set_failure ... 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_shared_task_metadata -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata ... 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.test_generic.ManualManagementHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_error ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ... ok -ironic.tests.unit.drivers.modules.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_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.test_oneview.OneViewHardwareTestCase.test_override_with_iscsi -ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_iscsi ... 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.UtilsTestCase.test_capabilities_not_string -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string ... ok -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_set_boot_device ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... ok -ironic.tests.unit.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_conductor.TestConductorObject.test_register_with_invalid_group -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group ... ok -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_and_wait_for_state_change_fail -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_and_wait_for_state_change_fail ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_static_result -ironic.tests.unit.objects.test_objects.TestObject.test_static_result ... 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.ucs.test_power.UcsPowerTestCase.test_set_power_state_fail -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_fail ... ok -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_invalid_state -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_invalid_state ... 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_portgroup.TestPortgroupObject.test_list -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.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.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl ... ok -ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute -ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ... ok -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl ... ok -ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ... ok +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... ok +ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces +ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ... ok +ironic.tests.unit.drivers.test_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.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_get_node_capability +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ... 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.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_volume_target.TestVolumeTargetObject.test_list_by_volume_id +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ... ok -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} +GET: /v1/volume/connectors?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0e0e854b-0ac5-4b37-8757-5f8c50b72a28 +Openstack-Request-Id: req-a14e42f0-d226-470b-93f0-a597d3148fa6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} +POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-eea17b88-a067-44e0-92d0-a0064e4a86c7 +Openstack-Request-Id: req-de97c7ff-747e-4398-b96f-fba48089bc4f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:21.482453+00:00", "updated_at": null} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute node_uuid. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} +GET: /v1/volume/targets?detail=True&limit=3 {} +GOT:{'targets': [{'uuid': '943c7ba2-ec3d-4761-a901-a3c9b71b7d0d', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/943c7ba2-ec3d-4761-a901-a3c9b71b7d0d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/943c7ba2-ec3d-4761-a901-a3c9b71b7d0d', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.218328+00:00', 'updated_at': None}, {'uuid': '83dab453-2dbb-4678-90d5-914e90ffa507', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 1, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/83dab453-2dbb-4678-90d5-914e90ffa507', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/83dab453-2dbb-4678-90d5-914e90ffa507', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.220813+00:00', 'updated_at': None}, {'uuid': 'da8ac1f3-2a86-46f1-aaa3-48be755b9a7b', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 2, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/da8ac1f3-2a86-46f1-aaa3-48be755b9a7b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/da8ac1f3-2a86-46f1-aaa3-48be755b9a7b', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.223253+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=da8ac1f3-2a86-46f1-aaa3-48be755b9a7b'} +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-fd823012-81e8-45a4-8586-8c7d0661fa13 +Openstack-Request-Id: req-4bd3bf2e-9e31-41b4-b1c1-65ce5d2f1471 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/extra/non-existent', 'op': 'remove'}]'. Reason: can't remove non-existent object 'non-existent'\", \"debuginfo\": null}"} -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": "404 Not Found\n\nThe resource could not be found.\n\n "} -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'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/node_id) to the root of the resource is not allowed\", \"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/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-ea6b3dcb-a50a-4d59-b8b5-589a2ba70b6b -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "type": "iqn", "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:21.671911+00:00", "updated_at": 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-768ccfd0-5b46-429e-8dff-6c39713bb4f2 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:21.719110+00:00", "updated_at": null} -GET: /v1/ {} -GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], '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'}], 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', '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'}]} -func1() migrated 10 of 15 objects. -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ... ok -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ... ok -ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value -ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_save -ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... 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.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ... ok -ironic.tests.unit.objects.test_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_objects.TestObject.test_get_changes -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_hydration -ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error -ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... 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_supports_version -ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_updates -ironic.tests.unit.objects.test_objects.TestObject.test_updates ... ok -ironic.tests.unit.objects.test_objects.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.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_serialize_entity_pinned_api -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok -ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all -ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_all ... ok -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_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_trait.TestTraitObject.test_create_list -ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none ... ok -The database is not compatible with this release of ironic (11.1.0). Please run "ironic-dbsync online_data_migrations" using the previous release. -Error while running foo: bar. -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ... ok - -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": "404 Not Found\n\nThe resource could not be found.\n\n "} -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-8f059db5-b42d-4cb5-8d7b-f63cabf4a113 +Location: http://localhost/v1/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db +Openstack-Request-Id: req-5aeafd39-47a0-48df-afd6-bb2e3c7e5301 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute volume_type. Value: 'None'. Mandatory field missing.\", \"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'} +{"uuid": "1961822e-23d3-4594-8650-ab4a7d3143db", "volume_type": "iscsi", "properties": {"target_iqn": "iqn.foo"}, "boot_index": 0, "volume_id": "12345678", "extra": {}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db", "rel": "self"}, {"href": "http://localhost/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:06.457872+00:00", "updated_at": null} +GET: /v1/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db {} +GOT:{'uuid': '1961822e-23d3-4594-8650-ab4a7d3143db', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1961822e-23d3-4594-8650-ab4a7d3143db', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.457872+00:00', 'updated_at': None} +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-23488ba1-c88e-43da-8a44-df543cd5bea9 +Openstack-Request-Id: req-f6950f84-bf29-44db-aa79-f122a5ad11f2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:07.681539+00:00", "updated_at": null} +{"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": null, "dict": {"cat": "meow"}}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2021-12-04T17:54:06.554263+00:00", "updated_at": null} +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2021-12-04T17:54:06.554263+00:00', 'updated_at': None} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1131c3ad-5263-46b7-a552-43cd83326c4d -{"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}"} -func1() migrated 10 of 10 objects. -Data migrations have not completed. Please re-run. -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_invalid_system_id ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping ... ok -ironic.tests.unit.drivers.modules.test_agent.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_reboot_to_instance_boot_error -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance_boot_error ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_enabled ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_with_hook_fails ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_get_power_state_fails ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_exc ... 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_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_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_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_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_ipv4 ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_bios_without_by_arch ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_cpu_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_with_cpu_arch ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_whole_disk_image_with_config_drive ... 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_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_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_ensure_cache_size_with_amount -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount ... ok -ironic.tests.unit.drivers.modules.test_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_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_raises_1 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_unknown_dev ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.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_console_validate_missing_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_node_active ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate_storage_should_write_image_false -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate_storage_should_write_image_false ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_portal_port -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_get_deploy_info_portal_port ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid ... 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_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_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_ipa_debug -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_pxe_ipa_debug ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on_cached_driver ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_set_failure ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.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_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.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ... ok -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_password -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_parse_driver_info_missing_password ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ... 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_drac.IDRACHardwareTestCase.test_override_no_vendor -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_no_vendor ... ok -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ... ok -ironic.tests.unit.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.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_force_persistent_boot_true -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true ... 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_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function ... 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.objects.test_node.TestConvertToVersion.test_fault_supported_untouched -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_untouched ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_list -ironic.tests.unit.objects.test_node.TestNodeObject.test_list ... 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_objects.TestMisc.test_max_version_one -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_dehydration -ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ... 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.objects.test_objects.TestObject.test_object_property_type_error -ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context -ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh -ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ... 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 -/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py:192: UserWarning: Cannot convert to primitive, will raise ValueError instead of warning in version 3.0 - "instead of warning in version 3.0" % (value,)) -ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute -ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ... ok - -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:20.106029+00:00', 'updated_at': None} -GET: /v1/volume/targets?fields=uuid,extra {} -GOT:{'targets': [{'uuid': '74e7aab1-be71-4ebf-bdcb-22686eb35680', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/74e7aab1-be71-4ebf-bdcb-22686eb35680', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/74e7aab1-be71-4ebf-bdcb-22686eb35680', 'rel': 'bookmark'}]}, {'uuid': 'ed9d4c0d-a9b4-4664-8b9a-147155c08b39', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/ed9d4c0d-a9b4-4664-8b9a-147155c08b39', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ed9d4c0d-a9b4-4664-8b9a-147155c08b39', 'rel': 'bookmark'}]}, {'uuid': 'c1dfc7c5-9ad8-4a65-89e4-201b5b4fe01a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/c1dfc7c5-9ad8-4a65-89e4-201b5b4fe01a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c1dfc7c5-9ad8-4a65-89e4-201b5b4fe01a', 'rel': 'bookmark'}]}]} -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-b9ca2a32-79f3-44a4-9e73-f16f751712df -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:26.826785+00:00", "updated_at": null} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:26.826785+00:00', 'updated_at': None} -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 +Openstack-Request-Id: req-d22772ca-ad40-4a44-a696-ff126d2e08f6 +{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: / {} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-896fbf21-69de-4f44-9ce7-7e0a261ddd0a -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"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": null, "dict": {"cat": "meow"}}, "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "created_at": "2023-01-07T00:10:26.920839+00:00", "updated_at": null} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'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', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'created_at': '2023-01-07T00:10:26.920839+00:00', 'updated_at': None} +Openstack-Request-Id: req-60f69f6a-9c8f-4ac8-8cbe-4233508236cc +{"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\": null}"} +GET: / {} +GOT:{'name': 'OpenStack Ironic API', 'description': 'Ironic is an OpenStack project which aims to provision baremetal machines.', 'versions': [{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.46', 'min_version': '1.1'}], 'default_version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'version': '1.46', 'min_version': '1.1'}} func1() migrated 10 of 10 objects. -func2() migrated 0 of 0 objects. -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_failure_if_iscsi_boot_no_connectors ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_no_proxy_without_proxies -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_with_no_proxy_without_proxies ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done_race ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_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.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_manual_clean_version_mismatch -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_manual_clean_version_mismatch ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentRescueTests.test__finalize_rescue_missing_command_result ... ok -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event -ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_deploy_done_raises_with_event ... 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_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_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_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_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_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_keystone ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_get_clean_steps_override_priorities_none ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false ... ok -ironic.tests.unit.drivers.modules.test_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.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.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_fail ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final ... ok +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_image_source_is_url +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy_image_source_is_url ... 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_with_neutron_net +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net ... 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.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot_fail +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test__cleaning_reboot_fail ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_after_reboot ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_clean_version_mismatch_fail +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_clean_version_mismatch_fail ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off_failed +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_reboot_and_finish_deploy_power_action_oob_power_off_failed ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_continue_cleaning_fails ... ok +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_touch_provisioning_and_url_save +ironic.tests.unit.drivers.modules.test_agent_base_vendor.HeartbeatMixinTest.test_heartbeat_touch_provisioning_and_url_save ... 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_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_build_agent_options_conf ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test__check_disk_layout_unchanged_fails ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image +ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_overridden_default_value +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_overridden_default_value ... 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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_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_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.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_always_logout_and_delete_iscsi ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_check_file_system_for_iscsi_device ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_bios +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_deploy_partition_image_netboot_bios ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_raises +ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_verify_iscsi_connection_raises ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_pxe_config_partition_image +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_pxe_config_partition_image ... 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_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_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_some_other_exception ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_no_master ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_glance_image_not_authorized ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ... ok -ironic.tests.unit.drivers.modules.test_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_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.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_uefi_and_persistent ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_send_raw_bytes ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.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_with_empty_username -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_username ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_port ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_not_supported ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok ... ok +ironic.tests.unit.drivers.modules.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__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_with_dual_bridging_missing_parameters +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_dual_bridging_missing_parameters ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_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__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_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.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.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.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_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_do_agent_iscsi_deploy_start_iscsi_failure ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_invalid_root_device_hints -ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_validate_invalid_root_device_hints ... 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_mgmt.TestNoopManagement.test_dummy_methods -ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate_storage_should_write_image_false +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate_storage_should_write_image_false ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_file_path +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployPrivateMethodsTestCase.test__get_image_file_path ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_whole_disk_image_missing_root_uuid ... 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_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_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_local_boot ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_local_boot ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel_ipxe -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel_ipxe ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_instance_image_info ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_retries ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_engine ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ... ok -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_already_target_state -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test__wait_for_state_change_already_target_state ... ok -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_get_param_from_config ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_fail ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid ... ok -ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps -ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_one +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test_validate_boot_parameters_for_trusted_boot_one ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_transport ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport ... 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_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ... 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.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_snmp_v3_auth_badproto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot__wait_state_change_fail +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot__wait_state_change_fail ... ok +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_fail +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_set_power_state_fail ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict ... ok +ironic.tests.unit.drivers.test_base.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.RAIDInterfaceTestCase.test_validate_raid_config +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe ... 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_xclarity.XClarityHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ... 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_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.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.TestConvertToVersion.test_bios_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing ... 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.TestNodePayloads.test_node_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification_empty_schema ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ... 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.TestObjectSerializer.test_object_serialization_iterables -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ... ok +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema +ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields +ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance +ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context +ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... ok ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_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_conductor -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default ... ok +ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_one +ironic.tests.unit.objects.test_port.TestMigrateVifPortId.test_migrate_vif_port_id_one ... 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_by_address -ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ... 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_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_list -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ... 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_trait.TestTraitObject.test_as_dict +ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ... 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_volume_target.TestVolumeTargetObject.test_get +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get ... ok +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-8d689ebd-744c-4044-91a5-27801f812724 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:Response: 401 Unauthorized +Content-Type: application/json +Www-Authenticate: Keystone uri="https://127.0.0.1:35357" +{"error": {"code": 401, "title": "Unauthorized", "message": "The request you have made requires authentication."}} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-49257af1-a1d7-4337-9a31-5a60f06c2cd8 -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} -func1() migrated 10 of 10 objects. -func1() migrated 0 of 0 objects. -func2() migrated 0 of 0 objects. +Openstack-Request-Id: req-57bd559f-5d70-4665-8729-79b1a76b7b55 +{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +GET: /v1/ {} +GOT:{'id': 'v1', 'media_types': [{'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}], 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], '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'}], 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', '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'}]} +foo() migrated 15 of 15 objects. +Malformed option m1.key1value1 ---------------------------------------------------------------------- -Ran 4919 tests in 187.480s +Ran 4919 tests in 325.761s OK (skipped=12) + python3-stestr slowest -Test id Runtime (s) ----------------------------------------------------------------------------------------------------------- ----------- -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync 31.437 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema 31.398 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version 31.109 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version 30.570 -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state 23.247 -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached 21.203 -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces 14.787 -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached 12.803 -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state 9.077 -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout 9.072 +Test id Runtime (s) +-------------------------------------------------------------------------------------------------- ----------- +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version 150.411 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema 148.297 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version 144.021 +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync 129.183 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice 126.023 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_twice 119.341 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_upgrade_and_version 101.271 +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached 28.332 +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state 24.771 +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces 18.910 + rm -rf .stestr mkdir -p /build/ironic-11.1.0/debian/ironic-common/usr/share/ironic-common PYTHONPATH=/build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages python3-oslo-config-generator \ @@ -21384,9 +21417,9 @@ --namespace osprofiler \ --namespace keystonemiddleware.auth_token pkgos-readd-keystone-authtoken-missing-options /build/ironic-11.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.FOrpoW:[keystone_authtoken]/www_authenticate_uri -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.FOrpoW:[keystone_authtoken]/auth_type -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.FOrpoW:[keystone_authtoken]/region_name +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.GRL3tY:[keystone_authtoken]/www_authenticate_uri +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.GRL3tY:[keystone_authtoken]/auth_type +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.GRL3tY:[keystone_authtoken]/region_name # We're using python3, the default isn't good, it's using py2. pkgos-fix-config-default /build/ironic-11.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/ironic-11.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf:[DEFAULT]/pybasedir @@ -21697,7 +21730,7 @@ reading sources... [ 11%] cli/ironic-dbsync reading sources... [ 11%] configuration/config loading config file tools/config/ironic-config-generator.conf -dumping output to '/tmp/tmp2ucwnlli.rst' +dumping output to '/tmp/tmp_xe5_6sf.rst' reading sources... [ 12%] configuration/index reading sources... [ 12%] configuration/policy reading sources... [ 12%] configuration/sample-config @@ -22457,11 +22490,11 @@ touch /build/ironic-11.1.0/debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/toggle.js #rm /build/ironic-11.1.0/debian/ironic-doc/usr/share/doc/ironic-doc/html/search.html dh_sphinxdoc -O--buildsystem=python_distutils -dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/bootstrap.min.js dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/docs.js dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/toggle.js -dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/navigation.js dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/webui-popover.js +dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/navigation.js +dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/bootstrap.min.js make[1]: Leaving directory '/build/ironic-11.1.0' debian/rules override_dh_installchangelogs make[1]: Entering directory '/build/ironic-11.1.0' @@ -22487,15 +22520,17 @@ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done -+ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in -+ echo debian/ironic-api.init.in -+ sed s/.init.in// +++ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in ++ for i in `ls -1 debian/*.init.in` +++ echo debian/ironic-api.init.in +++ sed s/.init.in// + MYINIT=debian/ironic-api + cp debian/ironic-api.init.in debian/ironic-api.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-api.init.in -+ echo debian/ironic-conductor.init.in -+ sed s/.init.in// ++ for i in `ls -1 debian/*.init.in` +++ echo debian/ironic-conductor.init.in +++ sed s/.init.in// + MYINIT=debian/ironic-conductor + cp debian/ironic-conductor.init.in debian/ironic-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template @@ -22505,7 +22540,7 @@ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done -+ ls -1 debian/*.service.in +++ ls -1 'debian/*.service.in' ls: cannot access 'debian/*.service.in': No such file or directory # Generate the systemd unit if there's no already existing .service.in set -e ; set -x ; for i in `ls debian/*.init.in` ; do \ @@ -22514,16 +22549,18 @@ pkgos-gen-systemd-unit $i ; \ fi \ done -+ ls debian/ironic-api.init.in debian/ironic-conductor.init.in -+ echo debian/ironic-api.init.in -+ sed s/.init.in/.service.in/ +++ ls debian/ironic-api.init.in debian/ironic-conductor.init.in ++ for i in `ls debian/*.init.in` +++ echo debian/ironic-api.init.in +++ sed s/.init.in/.service.in/ + MYINIT=debian/ironic-api.service.in -+ [ -e debian/ironic-api.service.in ] ++ '[' -e debian/ironic-api.service.in ']' + pkgos-gen-systemd-unit debian/ironic-api.init.in -+ echo debian/ironic-conductor.init.in -+ sed s/.init.in/.service.in/ ++ for i in `ls debian/*.init.in` +++ echo debian/ironic-conductor.init.in +++ sed s/.init.in/.service.in/ + MYINIT=debian/ironic-conductor.service.in -+ [ -e debian/ironic-conductor.service.in ] ++ '[' -e debian/ironic-conductor.service.in ']' + pkgos-gen-systemd-unit debian/ironic-conductor.init.in dh_systemd_enable make[1]: Leaving directory '/build/ironic-11.1.0' @@ -22551,15 +22588,17 @@ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done -+ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in -+ echo debian/ironic-api.init.in -+ sed s/.init.in// +++ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in ++ for i in `ls -1 debian/*.init.in` +++ echo debian/ironic-api.init.in +++ sed s/.init.in// + MYINIT=debian/ironic-api + cp debian/ironic-api.init.in debian/ironic-api.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-api.init.in -+ echo debian/ironic-conductor.init.in -+ sed s/.init.in// ++ for i in `ls -1 debian/*.init.in` +++ echo debian/ironic-conductor.init.in +++ sed s/.init.in// + MYINIT=debian/ironic-conductor + cp debian/ironic-conductor.init.in debian/ironic-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template @@ -22569,7 +22608,7 @@ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done -+ ls -1 debian/*.service.in +++ ls -1 'debian/*.service.in' ls: cannot access 'debian/*.service.in': No such file or directory # Generate the systemd unit if there's no already existing .service.in set -e ; set -x ; for i in `ls debian/*.init.in` ; do \ @@ -22578,16 +22617,18 @@ pkgos-gen-systemd-unit $i ; \ fi \ done -+ ls debian/ironic-api.init.in debian/ironic-conductor.init.in -+ echo debian/ironic-api.init.in -+ sed s/.init.in/.service.in/ +++ ls debian/ironic-api.init.in debian/ironic-conductor.init.in ++ for i in `ls debian/*.init.in` +++ echo debian/ironic-api.init.in +++ sed s/.init.in/.service.in/ + MYINIT=debian/ironic-api.service.in -+ [ -e debian/ironic-api.service.in ] ++ '[' -e debian/ironic-api.service.in ']' + pkgos-gen-systemd-unit debian/ironic-api.init.in -+ echo debian/ironic-conductor.init.in -+ sed s/.init.in/.service.in/ ++ for i in `ls debian/*.init.in` +++ echo debian/ironic-conductor.init.in +++ sed s/.init.in/.service.in/ + MYINIT=debian/ironic-conductor.service.in -+ [ -e debian/ironic-conductor.service.in ] ++ '[' -e debian/ironic-conductor.service.in ']' + pkgos-gen-systemd-unit debian/ironic-conductor.init.in dh_installinit --error-handler=true make[1]: Leaving directory '/build/ironic-11.1.0' @@ -22618,11 +22659,11 @@ make[1]: Leaving directory '/build/ironic-11.1.0' dh_md5sums -O--buildsystem=python_distutils dh_builddeb -O--buildsystem=python_distutils -dpkg-deb: building package 'ironic-api' in '../ironic-api_11.1.0-6_all.deb'. dpkg-deb: building package 'ironic-doc' in '../ironic-doc_11.1.0-6_all.deb'. -dpkg-deb: building package 'ironic-common' in '../ironic-common_11.1.0-6_all.deb'. -dpkg-deb: building package 'python3-ironic' in '../python3-ironic_11.1.0-6_all.deb'. dpkg-deb: building package 'ironic-conductor' in '../ironic-conductor_11.1.0-6_all.deb'. +dpkg-deb: building package 'ironic-api' in '../ironic-api_11.1.0-6_all.deb'. +dpkg-deb: building package 'python3-ironic' in '../python3-ironic_11.1.0-6_all.deb'. +dpkg-deb: building package 'ironic-common' in '../ironic-common_11.1.0-6_all.deb'. dpkg-genbuildinfo --build=binary dpkg-genchanges --build=binary >../ironic_11.1.0-6_amd64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -22631,12 +22672,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/858869/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/858869/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/2968133 and its subdirectories -I: Current time: Fri Jan 6 12:13:08 -12 2023 -I: pbuilder-time-stamp: 1673050388 +I: removing directory /srv/workspace/pbuilder/858869 and its subdirectories +I: Current time: Sun Dec 5 07:58:52 +14 2021 +I: pbuilder-time-stamp: 1638640732