Diff of the two buildlogs: -- --- b1/build.log 2020-08-18 08:19:13.021622648 +0000 +++ b2/build.log 2020-08-18 08:55:35.542415177 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Mon Aug 17 20:07:37 -12 2020 -I: pbuilder-time-stamp: 1597738057 +I: Current time: Tue Sep 21 04:42:26 +14 2021 +I: pbuilder-time-stamp: 1632148946 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 '/var/lib/jenkins/.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/7656/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2638/tmp/hooks/D01_modify_environment starting +debug: Running on codethink-sled13-arm64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +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/2638/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2638/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='arm64' - DEBIAN_FRONTEND='noninteractive' + 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]="aarch64-unknown-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=arm64 + DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=8' - DISTRIBUTION='' - HOME='/var/lib/jenkins' - HOST_ARCH='arm64' + DIRSTACK=() + DISTRIBUTION= + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/var/lib/jenkins + HOSTNAME=i-capture-the-hostname + HOSTTYPE=aarch64 + HOST_ARCH=arm64 IFS=' ' - 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='7656' - PS1='# ' - PS2='> ' + LANG=C + LANGUAGE=nl_BE:nl + LC_ALL=C + MACHTYPE=aarch64-unknown-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=2638 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.uZyPAQwiSx/pbuilderrc_b3G8 --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.uZyPAQwiSx/b1 --logfile b1/build.log ironic_11.1.0-6.dsc' - SUDO_GID='117' - SUDO_UID='110' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - USERNAME='root' - _='/usr/bin/systemd-run' - http_proxy='http://192.168.101.16: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.uZyPAQwiSx/pbuilderrc_Sa1E --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/buster-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/tmp.uZyPAQwiSx/b2 --logfile b2/build.log ironic_11.1.0-6.dsc' + SUDO_GID=117 + SUDO_UID=110 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + USERNAME=root + _='I: set' + http_proxy=http://192.168.101.16:3128 I: uname -a - Linux codethink-sled16-arm64 4.4.0-187-generic #217-Ubuntu SMP Tue Jul 21 04:16:35 UTC 2020 aarch64 GNU/Linux + Linux i-capture-the-hostname 4.4.0-187-generic #217-Ubuntu SMP Tue Jul 21 04:16:35 UTC 2020 aarch64 GNU/Linux I: ls -l /bin total 4928 - -rwxr-xr-x 1 root root 1216928 Apr 17 2019 bash - -rwxr-xr-x 3 root root 34808 Jul 10 2019 bunzip2 - -rwxr-xr-x 3 root root 34808 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 34808 Jul 10 2019 bzip2 - -rwxr-xr-x 1 root root 14264 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 35576 Feb 28 2019 cat - -rwxr-xr-x 1 root root 60256 Feb 28 2019 chgrp - -rwxr-xr-x 1 root root 56096 Feb 28 2019 chmod - -rwxr-xr-x 1 root root 64368 Feb 28 2019 chown - -rwxr-xr-x 1 root root 134632 Feb 28 2019 cp - -rwxr-xr-x 1 root root 129536 Jan 17 2019 dash - -rwxr-xr-x 1 root root 97136 Feb 28 2019 date - -rwxr-xr-x 1 root root 76736 Feb 28 2019 dd - -rwxr-xr-x 1 root root 93752 Feb 28 2019 df - -rwxr-xr-x 1 root root 138848 Feb 28 2019 dir - -rwxr-xr-x 1 root root 75984 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 31368 Feb 28 2019 echo - -rwxr-xr-x 1 root root 28 Jan 7 2019 egrep - -rwxr-xr-x 1 root root 27256 Feb 28 2019 false - -rwxr-xr-x 1 root root 28 Jan 7 2019 fgrep - -rwxr-xr-x 1 root root 68792 Jan 9 2019 findmnt - -rwsr-xr-x 1 root root 34824 Apr 22 07:38 fusermount - -rwxr-xr-x 1 root root 174304 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 89656 Jan 5 2019 gzip - -rwxr-xr-x 1 root root 18440 Sep 26 2018 hostname - -rwxr-xr-x 1 root root 64472 Feb 28 2019 ln - -rwxr-xr-x 1 root root 52544 Jul 26 2018 login - -rwxr-xr-x 1 root root 138848 Feb 28 2019 ls - -rwxr-xr-x 1 root root 108552 Jan 9 2019 lsblk - -rwxr-xr-x 1 root root 76840 Feb 28 2019 mkdir - -rwxr-xr-x 1 root root 64480 Feb 28 2019 mknod - -rwxr-xr-x 1 root root 39736 Feb 28 2019 mktemp - -rwxr-xr-x 1 root root 38840 Jan 9 2019 more - -rwsr-xr-x 1 root root 47112 Jan 9 2019 mount - -rwxr-xr-x 1 root root 14344 Jan 9 2019 mountpoint - -rwxr-xr-x 1 root root 138736 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 35560 Feb 28 2019 pwd - lrwxrwxrwx 1 root root 4 Apr 17 2019 rbash -> bash - -rwxr-xr-x 1 root root 43712 Feb 28 2019 readlink - -rwxr-xr-x 1 root root 68440 Feb 28 2019 rm - -rwxr-xr-x 1 root root 39624 Feb 28 2019 rmdir - -rwxr-xr-x 1 root root 19144 Jan 21 2019 run-parts - -rwxr-xr-x 1 root root 114016 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Aug 16 20:26 sh -> dash - -rwxr-xr-x 1 root root 31384 Feb 28 2019 sleep - -rwxr-xr-x 1 root root 72480 Feb 28 2019 stty - -rwsr-xr-x 1 root root 59424 Jan 9 2019 su - -rwxr-xr-x 1 root root 31416 Feb 28 2019 sync - -rwxr-xr-x 1 root root 449416 Apr 23 2019 tar - -rwxr-xr-x 1 root root 10560 Jan 21 2019 tempfile - -rwxr-xr-x 1 root root 88968 Feb 28 2019 touch - -rwxr-xr-x 1 root root 27256 Feb 28 2019 true - -rwxr-xr-x 1 root root 14264 Apr 22 07:38 ulockmgr_server - -rwsr-xr-x 1 root root 30728 Jan 9 2019 umount - -rwxr-xr-x 1 root root 31384 Feb 28 2019 uname - -rwxr-xr-x 2 root root 2345 Jan 5 2019 uncompress - -rwxr-xr-x 1 root root 138848 Feb 28 2019 vdir - -rwxr-xr-x 1 root root 34824 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/7656/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 1216928 Apr 18 2019 bash + -rwxr-xr-x 3 root root 34808 Jul 11 2019 bunzip2 + -rwxr-xr-x 3 root root 34808 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 34808 Jul 11 2019 bzip2 + -rwxr-xr-x 1 root root 14264 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 35576 Mar 1 2019 cat + -rwxr-xr-x 1 root root 60256 Mar 1 2019 chgrp + -rwxr-xr-x 1 root root 56096 Mar 1 2019 chmod + -rwxr-xr-x 1 root root 64368 Mar 1 2019 chown + -rwxr-xr-x 1 root root 134632 Mar 1 2019 cp + -rwxr-xr-x 1 root root 129536 Jan 18 2019 dash + -rwxr-xr-x 1 root root 97136 Mar 1 2019 date + -rwxr-xr-x 1 root root 76736 Mar 1 2019 dd + -rwxr-xr-x 1 root root 93752 Mar 1 2019 df + -rwxr-xr-x 1 root root 138848 Mar 1 2019 dir + -rwxr-xr-x 1 root root 75984 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 31368 Mar 1 2019 echo + -rwxr-xr-x 1 root root 28 Jan 8 2019 egrep + -rwxr-xr-x 1 root root 27256 Mar 1 2019 false + -rwxr-xr-x 1 root root 28 Jan 8 2019 fgrep + -rwxr-xr-x 1 root root 68792 Jan 10 2019 findmnt + -rwsr-xr-x 1 root root 34824 Apr 23 2020 fusermount + -rwxr-xr-x 1 root root 174304 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 89656 Jan 6 2019 gzip + -rwxr-xr-x 1 root root 18440 Sep 27 2018 hostname + -rwxr-xr-x 1 root root 64472 Mar 1 2019 ln + -rwxr-xr-x 1 root root 52544 Jul 27 2018 login + -rwxr-xr-x 1 root root 138848 Mar 1 2019 ls + -rwxr-xr-x 1 root root 108552 Jan 10 2019 lsblk + -rwxr-xr-x 1 root root 76840 Mar 1 2019 mkdir + -rwxr-xr-x 1 root root 64480 Mar 1 2019 mknod + -rwxr-xr-x 1 root root 39736 Mar 1 2019 mktemp + -rwxr-xr-x 1 root root 38840 Jan 10 2019 more + -rwsr-xr-x 1 root root 47112 Jan 10 2019 mount + -rwxr-xr-x 1 root root 14344 Jan 10 2019 mountpoint + -rwxr-xr-x 1 root root 138736 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 35560 Mar 1 2019 pwd + lrwxrwxrwx 1 root root 4 Apr 18 2019 rbash -> bash + -rwxr-xr-x 1 root root 43712 Mar 1 2019 readlink + -rwxr-xr-x 1 root root 68440 Mar 1 2019 rm + -rwxr-xr-x 1 root root 39624 Mar 1 2019 rmdir + -rwxr-xr-x 1 root root 19144 Jan 22 2019 run-parts + -rwxr-xr-x 1 root root 114016 Dec 23 2018 sed + lrwxrwxrwx 1 root root 4 Sep 21 04:42 sh -> bash + lrwxrwxrwx 1 root root 4 Sep 20 04:49 sh.distrib -> dash + -rwxr-xr-x 1 root root 31384 Mar 1 2019 sleep + -rwxr-xr-x 1 root root 72480 Mar 1 2019 stty + -rwsr-xr-x 1 root root 59424 Jan 10 2019 su + -rwxr-xr-x 1 root root 31416 Mar 1 2019 sync + -rwxr-xr-x 1 root root 449416 Apr 24 2019 tar + -rwxr-xr-x 1 root root 10560 Jan 22 2019 tempfile + -rwxr-xr-x 1 root root 88968 Mar 1 2019 touch + -rwxr-xr-x 1 root root 27256 Mar 1 2019 true + -rwxr-xr-x 1 root root 14264 Apr 23 2020 ulockmgr_server + -rwsr-xr-x 1 root root 30728 Jan 10 2019 umount + -rwxr-xr-x 1 root root 31384 Mar 1 2019 uname + -rwxr-xr-x 2 root root 2345 Jan 6 2019 uncompress + -rwxr-xr-x 1 root root 138848 Mar 1 2019 vdir + -rwxr-xr-x 1 root root 34824 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/2638/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 arm64 python3-zake all 0.2.2-2 [15.8 kB] Get: 346 http://deb.debian.org/debian buster/main arm64 python3-tooz all 1.62.0-3 [48.7 kB] Get: 347 http://deb.debian.org/debian buster/main arm64 python3-wsme all 0.9.3-2 [66.3 kB] -Fetched 69.9 MB in 19s (3767 kB/s) +Fetched 69.9 MB in 8s (8466 kB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libbsd0:arm64. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19168 files and directories currently installed.) @@ -2198,7 +2232,7 @@ 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 +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 dpkg-buildpackage: info: source package ironic dpkg-buildpackage: info: source version 1:11.1.0-6 dpkg-buildpackage: info: source distribution unstable @@ -2329,102 +2363,29 @@ copying ironic/tests/unit/api/test_acl.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/base.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/__init__.py -> build/lib/ironic/tests/unit/api +creating build/lib/ironic/objects +copying ironic/objects/volume_target.py -> build/lib/ironic/objects +copying ironic/objects/volume_connector.py -> build/lib/ironic/objects +copying ironic/objects/trait.py -> build/lib/ironic/objects +copying ironic/objects/portgroup.py -> build/lib/ironic/objects +copying ironic/objects/port.py -> build/lib/ironic/objects +copying ironic/objects/notification.py -> build/lib/ironic/objects +copying ironic/objects/node.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/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/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/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/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/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/version.py -> build/lib/ironic +copying ironic/__init__.py -> build/lib/ironic creating build/lib/ironic/drivers -creating build/lib/ironic/drivers/modules -creating build/lib/ironic/drivers/modules/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 -creating build/lib/ironic/tests/unit/drivers/modules -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/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/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/api -creating build/lib/ironic/api/middleware -copying ironic/api/middleware/parsable_error.py -> build/lib/ironic/api/middleware -copying ironic/api/middleware/json_ext.py -> build/lib/ironic/api/middleware -copying ironic/api/middleware/auth_token.py -> build/lib/ironic/api/middleware -copying ironic/api/middleware/__init__.py -> build/lib/ironic/api/middleware -creating build/lib/ironic/drivers/modules/xclarity -copying ironic/drivers/modules/xclarity/power.py -> build/lib/ironic/drivers/modules/xclarity -copying ironic/drivers/modules/xclarity/management.py -> build/lib/ironic/drivers/modules/xclarity -copying ironic/drivers/modules/xclarity/common.py -> build/lib/ironic/drivers/modules/xclarity -copying ironic/drivers/modules/xclarity/__init__.py -> build/lib/ironic/drivers/modules/xclarity -creating build/lib/ironic/hacking -copying ironic/hacking/checks.py -> build/lib/ironic/hacking -copying ironic/hacking/__init__.py -> build/lib/ironic/hacking -creating build/lib/ironic/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/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/drivers/modules/ansible -copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible -copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible copying ironic/drivers/base.py -> build/lib/ironic/drivers copying ironic/drivers/xclarity.py -> build/lib/ironic/drivers copying ironic/drivers/utils.py -> build/lib/ironic/drivers @@ -2440,53 +2401,91 @@ 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/tests/unit/drivers +creating build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_noop.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_neutron.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_flat.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/network copying ironic/tests/unit/drivers/modules/network/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/network -creating build/lib/ironic/tests/unit/drivers/modules/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/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/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/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/cmd -copying ironic/tests/unit/cmd/test_dbsync.py -> build/lib/ironic/tests/unit/cmd -copying ironic/tests/unit/cmd/test_conductor.py -> build/lib/ironic/tests/unit/cmd -copying ironic/tests/unit/cmd/__init__.py -> build/lib/ironic/tests/unit/cmd +creating build/lib/ironic/tests/unit/drivers/modules/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 +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/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/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/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 +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 +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 +copying ironic/tests/unit/drivers/test_xclarity.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_utils.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_snmp.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_redfish.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_oneview.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_irmc.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_ipmi.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_ilo.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_generic.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_fake_hardware.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_drac.py -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/test_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/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/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 @@ -2498,15 +2497,17 @@ 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 -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/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/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/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/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/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 @@ -2523,21 +2524,53 @@ 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/objects -copying ironic/tests/unit/objects/utils.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_volume_target.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_volume_connector.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_trait.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_portgroup.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_port.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_objects.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_notification.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_node.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_fields.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_conductor.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_chassis.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects -copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects +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/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/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/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 +copying ironic/tests/base.py -> build/lib/ironic/tests +copying ironic/tests/__init__.py -> build/lib/ironic/tests +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/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/conf copying ironic/conf/xclarity.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf @@ -2572,74 +2605,99 @@ 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/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/tests/unit/test_base.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit +copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit +creating build/lib/ironic/tests/unit/drivers/modules/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/functional +copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional +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 +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/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/functional -copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional +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/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/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/cmd copying ironic/cmd/dbsync.py -> build/lib/ironic/cmd copying ironic/cmd/conductor.py -> build/lib/ironic/cmd copying ironic/cmd/api.py -> build/lib/ironic/cmd copying ironic/cmd/__init__.py -> build/lib/ironic/cmd -creating build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_wsgi_service.py -> build/lib/ironic/tests/unit/common -copying ironic/tests/unit/common/test_utils.py -> build/lib/ironic/tests/unit/common -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/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/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/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 -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/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/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/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/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 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 @@ -2654,83 +2712,7 @@ 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 -copying ironic/tests/base.py -> build/lib/ironic/tests -copying ironic/tests/__init__.py -> build/lib/ironic/tests 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/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/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/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/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 -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 -copying ironic/tests/unit/drivers/test_xclarity.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_utils.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_snmp.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_redfish.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_oneview.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_irmc.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_ipmi.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_ilo.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_generic.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_fake_hardware.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_drac.py -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/test_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/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/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/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/test_power.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/test_management.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/test_common.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/drivers/modules/xclarity/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/xclarity -copying ironic/tests/unit/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/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/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/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 @@ -2749,6 +2731,9 @@ 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/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/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 @@ -2779,23 +2764,72 @@ 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 -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 -copying ironic/version.py -> build/lib/ironic -copying ironic/__init__.py -> build/lib/ironic -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/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/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/drivers/modules/ansible +copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible +copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible +creating build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/utils.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_volume_target.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_volume_connector.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_trait.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_portgroup.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_port.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_objects.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_notification.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_node.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_fields.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_conductor.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_chassis.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects +copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects +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 +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/storage +copying ironic/tests/unit/drivers/modules/storage/test_external.py -> build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/test_cinder.py -> build/lib/ironic/tests/unit/drivers/modules/storage +copying ironic/tests/unit/drivers/modules/storage/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/storage +creating build/lib/ironic/tests/unit/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/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/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 @@ -2818,6 +2852,9 @@ 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/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/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 @@ -2864,6 +2901,24 @@ 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/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 +copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers +copying ironic/tests/unit/drivers/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/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/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 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 @@ -2914,27 +2969,6 @@ 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/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 -copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers -copying ironic/tests/unit/drivers/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/common/grub_conf.template -> build/lib/ironic/common -copying ironic/common/isolinux_config.template -> build/lib/ironic/common -copying ironic/api/app.wsgi -> build/lib/ironic/api -copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc -copying ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ok.xml -> build/lib/ironic/tests/unit/drivers/modules/irmc running install_lib creating /build/ironic-11.1.0/debian/tmp creating /build/ironic-11.1.0/debian/tmp/usr @@ -2942,28 +2976,11 @@ 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 -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/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/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 -copying build/lib/ironic/objects/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/chassis.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/fields.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/indirection.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/notification.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/port.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/portgroup.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/trait.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/volume_connector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects -copying build/lib/ironic/objects/volume_target.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects 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 @@ -3003,45 +3020,17 @@ 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 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 -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/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 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 @@ -3097,23 +3086,44 @@ 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 +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 +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/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/__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/drivers copying build/lib/ironic/drivers/raid_config_schema.json -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/cisco_ucs.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/drac.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/fake_hardware.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/generic.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/hardware_type.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/ilo.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/ipmi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/irmc.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/oneview.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/redfish.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/snmp.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/xclarity.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers -copying build/lib/ironic/drivers/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers creating /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_grub_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/modules/pxe_config.template -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules @@ -3122,62 +3132,16 @@ 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/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 -copying build/lib/ironic/drivers/modules/ilo/boot.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/console.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/firmware_processor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -copying build/lib/ironic/drivers/modules/ilo/inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo -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/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/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/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 -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/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/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/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 +copying build/lib/ironic/drivers/modules/drac/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/job.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +copying build/lib/ironic/drivers/modules/drac/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac +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/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 @@ -3231,16 +3195,67 @@ 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/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 +copying build/lib/ironic/drivers/modules/ilo/boot.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/console.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/firmware_processor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +copying build/lib/ironic/drivers/modules/ilo/inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ilo +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/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/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/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/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 +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/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 @@ -3250,24 +3265,28 @@ 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/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 -copying build/lib/ironic/drivers/modules/drac/common.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/inspect.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/job.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -copying build/lib/ironic/drivers/modules/drac/management.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac -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/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/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 +copying build/lib/ironic/drivers/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/cisco_ucs.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/drac.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/fake_hardware.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/generic.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/hardware_type.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/ilo.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/ipmi.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/irmc.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/oneview.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/redfish.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/snmp.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/xclarity.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +copying build/lib/ironic/drivers/base.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers +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 @@ -3305,18 +3324,33 @@ 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/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 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/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 +copying build/lib/ironic/objects/bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/chassis.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/conductor.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/fields.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/indirection.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/node.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/notification.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/port.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/portgroup.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/trait.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/volume_connector.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects +copying build/lib/ironic/objects/volume_target.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects 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 +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/unit 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 @@ -3327,30 +3361,6 @@ 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/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/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 @@ -3370,15 +3380,63 @@ 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 +copying build/lib/ironic/tests/unit/db/sqlalchemy/test_api.py -> /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/test_migrations.py -> /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/test_models.py -> /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/test_types.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy +copying build/lib/ironic/tests/unit/db/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db +copying build/lib/ironic/tests/unit/db/base.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_api.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_bios_settings.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_chassis.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_conductor.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_node_tags.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_node_traits.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_nodes.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_portgroups.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_ports.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_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/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 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/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/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 @@ -3405,37 +3463,10 @@ 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/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 -copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_management.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_power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity 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/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/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 -copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_boot.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_common.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_console.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_firmware_processor.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_inspect.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_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 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 @@ -3450,11 +3481,48 @@ 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/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 +copying build/lib/ironic/tests/unit/drivers/modules/oneview/test_deploy.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_deploy_utils.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_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/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 +copying build/lib/ironic/tests/unit/drivers/modules/xclarity/test_management.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_power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity 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/ucs +copying build/lib/ironic/tests/unit/drivers/modules/ucs/__init__.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_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/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 +copying build/lib/ironic/tests/unit/drivers/modules/ilo/test_boot.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_common.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_console.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_firmware_processor.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_inspect.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_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/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/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/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_bios.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac @@ -3466,58 +3534,22 @@ copying build/lib/ironic/tests/unit/drivers/modules/drac/test_power.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_raid.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/utils.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac -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/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/ucs -copying build/lib/ironic/tests/unit/drivers/modules/ucs/__init__.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_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/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 -copying build/lib/ironic/tests/unit/drivers/modules/oneview/test_deploy.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_deploy_utils.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_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/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 -copying build/lib/ironic/tests/unit/db/sqlalchemy/test_api.py -> /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/test_migrations.py -> /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/test_models.py -> /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/test_types.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy -copying build/lib/ironic/tests/unit/db/__init__.py -> /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db -copying build/lib/ironic/tests/unit/db/base.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_api.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_bios_settings.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_chassis.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_conductor.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_node_tags.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_node_traits.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_nodes.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_portgroups.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_ports.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_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/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/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 @@ -3535,6 +3567,8 @@ 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 @@ -3545,26 +3579,10 @@ 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 -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/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/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 -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/chassis.py to chassis.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/conductor.py to conductor.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/fields.py to fields.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/indirection.py to indirection.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/node.py to node.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/notification.py to notification.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/port.py to port.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/portgroup.py to portgroup.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/trait.py to trait.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/volume_connector.py to volume_connector.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/volume_target.py to volume_target.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 @@ -3602,39 +3620,15 @@ 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/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/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/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/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 @@ -3683,21 +3677,57 @@ 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/drivers/__init__.py to __init__.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/cisco_ucs.py to cisco_ucs.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/drac.py to drac.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/fake_hardware.py to fake_hardware.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/generic.py to generic.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/hardware_type.py to hardware_type.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/ilo.py to ilo.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/ipmi.py to ipmi.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/irmc.py to irmc.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/oneview.py to oneview.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/redfish.py to redfish.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/snmp.py to snmp.cpython-37.pyc -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/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/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/__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/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 +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/inspect.py to inspect.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/job.py to job.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/management.py to management.cpython-37.pyc +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/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/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 @@ -3708,18 +3738,29 @@ 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/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/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/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/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/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/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/__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 @@ -3736,32 +3777,6 @@ 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/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/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/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/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/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 @@ -3770,22 +3785,27 @@ 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/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 -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/inspect.py to inspect.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/job.py to job.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/management.py to management.cpython-37.pyc -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/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/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/drivers/__init__.py to __init__.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/cisco_ucs.py to cisco_ucs.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/drac.py to drac.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/fake_hardware.py to fake_hardware.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/generic.py to generic.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/hardware_type.py to hardware_type.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/ilo.py to ilo.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/ipmi.py to ipmi.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/irmc.py to irmc.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/oneview.py to oneview.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/redfish.py to redfish.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/snmp.py to snmp.cpython-37.pyc +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/__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 @@ -3818,15 +3838,29 @@ 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/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/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/__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/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 +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/chassis.py to chassis.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/conductor.py to conductor.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/fields.py to fields.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/indirection.py to indirection.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/node.py to node.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/notification.py to notification.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/port.py to port.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/portgroup.py to portgroup.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/trait.py to trait.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/volume_connector.py to volume_connector.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/objects/volume_target.py to volume_target.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/__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/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 @@ -3835,6 +3869,52 @@ 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/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/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 +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_models.py to test_models.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/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/db/__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/base.py to base.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/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/test_bios_settings.py to test_bios_settings.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/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/db/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/db/test_node_tags.py to test_node_tags.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_traits.py to test_node_traits.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_nodes.py to test_nodes.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_portgroups.py to test_portgroups.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_ports.py to test_ports.cpython-37.pyc +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/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/__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/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 @@ -3858,31 +3938,6 @@ 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/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/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/__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/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 @@ -3899,30 +3954,9 @@ 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/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 -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/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/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/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/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 -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/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/ilo/test_console.py to test_console.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py to test_firmware_processor.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/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/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/__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 @@ -3937,10 +3971,41 @@ 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/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 +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview/test_deploy_utils.py to test_deploy_utils.cpython-37.pyc +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/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 +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/xclarity/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/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/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/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 +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/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/ilo/test_console.py to test_console.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/test_firmware_processor.py to test_firmware_processor.cpython-37.pyc +byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/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/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/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/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/drac/__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/drac/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/drac/test_common.py to test_common.cpython-37.pyc @@ -3951,49 +4016,16 @@ byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/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/drac/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/drac/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/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/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/ucs/__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/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/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 -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/oneview/test_deploy_utils.py to test_deploy_utils.cpython-37.pyc -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/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 -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/test_models.py to test_models.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy/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/db/__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/base.py to base.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/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/test_bios_settings.py to test_bios_settings.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/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/db/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/db/test_node_tags.py to test_node_tags.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_node_traits.py to test_node_traits.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_nodes.py to test_nodes.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_portgroups.py to test_portgroups.cpython-37.pyc -byte-compiling /build/ironic-11.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/test_ports.py to test_ports.cpython-37.pyc -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/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/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 @@ -4010,6 +4042,8 @@ 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 @@ -4047,504 +4081,660 @@ + 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 ']' +++ cut -d. -f1 +++ echo 3.7 + 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.*)) + subunit2pyunit -2020-08-17 20:11:43.311 929 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2020-08-17 20:11:43.325 927 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2020-08-17 20:11:43.329 931 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2020-08-17 20:11:43.427 941 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2020-08-17 20:11:43.474 935 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2020-08-17 20:11:43.482 937 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2020-08-17 20:11:43.576 933 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2020-08-17 20:11:43.617 939 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address -2020-08-17 20:11:52.780 929 INFO keyring.backend [-] Loading KWallet -2020-08-17 20:11:52.793 927 INFO keyring.backend [-] Loading KWallet -2020-08-17 20:11:52.870 929 INFO keyring.backend [-] Loading SecretService -2020-08-17 20:11:52.884 927 INFO keyring.backend [-] Loading SecretService -2020-08-17 20:11:52.891 931 INFO keyring.backend [-] Loading KWallet -2020-08-17 20:11:52.893 941 INFO keyring.backend [-] Loading KWallet -2020-08-17 20:11:52.913 929 INFO keyring.backend [-] Loading Windows -2020-08-17 20:11:52.926 927 INFO keyring.backend [-] Loading Windows -2020-08-17 20:11:52.930 929 INFO keyring.backend [-] Loading chainer -2020-08-17 20:11:52.935 929 INFO keyring.backend [-] Loading macOS -2020-08-17 20:11:52.938 927 INFO keyring.backend [-] Loading chainer -2020-08-17 20:11:52.942 927 INFO keyring.backend [-] Loading macOS -2020-08-17 20:11:52.971 941 INFO keyring.backend [-] Loading SecretService -2020-08-17 20:11:52.974 931 INFO keyring.backend [-] Loading SecretService -2020-08-17 20:11:53.021 941 INFO keyring.backend [-] Loading Windows -2020-08-17 20:11:53.022 931 INFO keyring.backend [-] Loading Windows -2020-08-17 20:11:53.049 941 INFO keyring.backend [-] Loading chainer -2020-08-17 20:11:53.050 931 INFO keyring.backend [-] Loading chainer -2020-08-17 20:11:53.058 941 INFO keyring.backend [-] Loading macOS -2020-08-17 20:11:53.058 931 INFO keyring.backend [-] Loading macOS -2020-08-17 20:11:53.078 935 INFO keyring.backend [-] Loading KWallet -2020-08-17 20:11:53.160 935 INFO keyring.backend [-] Loading SecretService -2020-08-17 20:11:53.193 935 INFO keyring.backend [-] Loading Windows -2020-08-17 20:11:53.212 935 INFO keyring.backend [-] Loading chainer -2020-08-17 20:11:53.220 935 INFO keyring.backend [-] Loading macOS -2020-08-17 20:11:53.227 937 INFO keyring.backend [-] Loading KWallet -2020-08-17 20:11:53.236 933 INFO keyring.backend [-] Loading KWallet -2020-08-17 20:11:53.296 937 INFO keyring.backend [-] Loading SecretService -2020-08-17 20:11:53.310 933 INFO keyring.backend [-] Loading SecretService -2020-08-17 20:11:53.329 937 INFO keyring.backend [-] Loading Windows -2020-08-17 20:11:53.345 937 INFO keyring.backend [-] Loading chainer -2020-08-17 20:11:53.352 933 INFO keyring.backend [-] Loading Windows -2020-08-17 20:11:53.354 937 INFO keyring.backend [-] Loading macOS -2020-08-17 20:11:53.371 933 INFO keyring.backend [-] Loading chainer -2020-08-17 20:11:53.377 933 INFO keyring.backend [-] Loading macOS -2020-08-17 20:11:53.392 939 INFO keyring.backend [-] Loading KWallet -2020-08-17 20:11:53.496 939 INFO keyring.backend [-] Loading SecretService -2020-08-17 20:11:53.538 939 INFO keyring.backend [-] Loading Windows -2020-08-17 20:11:53.558 939 INFO keyring.backend [-] Loading chainer -2020-08-17 20:11:53.567 939 INFO keyring.backend [-] Loading macOS ++ PYTHON=python3.7 ++ python3-stestr run --subunit 'ironic\.tests\.unit\.(?!(.*api\.controllers\.v1\.test_chassis\.TestPost\.test_create_chassis_unicode_description.*))' +2021-09-21 04:52:28.027 10879 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-09-21 04:52:28.126 10878 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-09-21 04:52:28.842 10887 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-09-21 04:52:28.963 10890 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-09-21 04:52:29.048 10914 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-09-21 04:52:29.172 10907 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-09-21 04:52:29.200 10922 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-09-21 04:52:29.227 10900 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address +2021-09-21 04:53:19.743 10878 INFO keyring.backend [-] Loading KWallet +2021-09-21 04:53:19.786 10879 INFO keyring.backend [-] Loading KWallet +2021-09-21 04:53:20.389 10878 INFO keyring.backend [-] Loading SecretService +2021-09-21 04:53:20.422 10879 INFO keyring.backend [-] Loading SecretService +2021-09-21 04:53:20.567 10878 INFO keyring.backend [-] Loading Windows +2021-09-21 04:53:20.612 10879 INFO keyring.backend [-] Loading Windows +2021-09-21 04:53:20.640 10878 INFO keyring.backend [-] Loading chainer +2021-09-21 04:53:20.658 10878 INFO keyring.backend [-] Loading macOS +2021-09-21 04:53:20.708 10879 INFO keyring.backend [-] Loading chainer +2021-09-21 04:53:20.725 10879 INFO keyring.backend [-] Loading macOS +2021-09-21 04:53:22.611 10914 INFO keyring.backend [-] Loading KWallet +2021-09-21 04:53:23.125 10914 INFO keyring.backend [-] Loading SecretService +2021-09-21 04:53:23.471 10914 INFO keyring.backend [-] Loading Windows +2021-09-21 04:53:23.694 10914 INFO keyring.backend [-] Loading chainer +2021-09-21 04:53:23.760 10914 INFO keyring.backend [-] Loading macOS +2021-09-21 04:53:24.486 10887 INFO keyring.backend [-] Loading KWallet +2021-09-21 04:53:24.495 10890 INFO keyring.backend [-] Loading KWallet +2021-09-21 04:53:24.580 10907 INFO keyring.backend [-] Loading KWallet +2021-09-21 04:53:25.355 10900 INFO keyring.backend [-] Loading KWallet +2021-09-21 04:53:25.423 10890 INFO keyring.backend [-] Loading SecretService +2021-09-21 04:53:25.444 10887 INFO keyring.backend [-] Loading SecretService +2021-09-21 04:53:25.447 10922 INFO keyring.backend [-] Loading KWallet +2021-09-21 04:53:25.517 10907 INFO keyring.backend [-] Loading SecretService +2021-09-21 04:53:25.741 10890 INFO keyring.backend [-] Loading Windows +2021-09-21 04:53:25.759 10887 INFO keyring.backend [-] Loading Windows +2021-09-21 04:53:25.844 10907 INFO keyring.backend [-] Loading Windows +2021-09-21 04:53:25.879 10890 INFO keyring.backend [-] Loading chainer +2021-09-21 04:53:25.883 10887 INFO keyring.backend [-] Loading chainer +2021-09-21 04:53:25.915 10887 INFO keyring.backend [-] Loading macOS +2021-09-21 04:53:25.913 10890 INFO keyring.backend [-] Loading macOS +2021-09-21 04:53:25.963 10907 INFO keyring.backend [-] Loading chainer +2021-09-21 04:53:25.992 10907 INFO keyring.backend [-] Loading macOS +2021-09-21 04:53:26.015 10900 INFO keyring.backend [-] Loading SecretService +2021-09-21 04:53:26.067 10922 INFO keyring.backend [-] Loading SecretService +2021-09-21 04:53:26.344 10900 INFO keyring.backend [-] Loading Windows +2021-09-21 04:53:26.375 10922 INFO keyring.backend [-] Loading Windows +2021-09-21 04:53:26.454 10900 INFO keyring.backend [-] Loading chainer +2021-09-21 04:53:26.466 10900 INFO keyring.backend [-] Loading macOS +2021-09-21 04:53:26.482 10922 INFO keyring.backend [-] Loading chainer +2021-09-21 04:53:26.514 10922 INFO keyring.backend [-] Loading macOS +2021-09-21 04:54:17.031 10879 INFO alembic.runtime.migration [req-b505c851-d976-4deb-b656-f9fd8f34894e - - - - -] Context impl SQLiteImpl. +2021-09-21 04:54:17.110 10879 INFO alembic.runtime.migration [req-b505c851-d976-4deb-b656-f9fd8f34894e - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. +2021-09-21 04:54:18.292 10878 INFO alembic.runtime.migration [req-b81ad59b-96fe-447f-aca4-4ba369059bce - - - - -] Context impl SQLiteImpl. +2021-09-21 04:54:18.340 10878 INFO alembic.runtime.migration [req-b81ad59b-96fe-447f-aca4-4ba369059bce - - - - -] 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 +INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 +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_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.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.TestDelete.test_delete_chassis_with_node +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query_false ... ok +2021-09-21 04:54:24.105 10914 INFO alembic.runtime.migration [req-4e7c5680-c538-419f-94f8-980e2676cf6f - - - - -] Context impl SQLiteImpl. +2021-09-21 04:54:24.108 10914 INFO alembic.runtime.migration [req-4e7c5680-c538-419f-94f8-980e2676cf6f - - - - -] Will assume non-transactional DDL. +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 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. +INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals +ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 +2021-09-21 04:54:27.199 10900 INFO alembic.runtime.migration [req-2a9fefc3-efbc-413c-ba91-314865889d54 - - - - -] Context impl SQLiteImpl. +2021-09-21 04:54:27.244 10900 INFO alembic.runtime.migration [req-2a9fefc3-efbc-413c-ba91-314865889d54 - - - - -] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals +ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -2020-08-17 20:12:03.091 927 INFO alembic.runtime.migration [req-0728c486-b9e1-4de2-842a-4cb99b12b4d2 - - - - -] Context impl SQLiteImpl. -2020-08-17 20:12:03.093 927 INFO alembic.runtime.migration [req-0728c486-b9e1-4de2-842a-4cb99b12b4d2 - - - - -] Will assume non-transactional DDL. -2020-08-17 20:12:03.276 941 INFO alembic.runtime.migration [req-772680cf-be00-49e7-ad9c-bc495167cffa - - - - -] Context impl SQLiteImpl. -2020-08-17 20:12:03.278 941 INFO alembic.runtime.migration [req-772680cf-be00-49e7-ad9c-bc495167cffa - - - - -] Will assume non-transactional DDL. -2020-08-17 20:12:03.172 929 INFO alembic.runtime.migration [req-b49e7ec0-389a-48e6-bcaf-d2bd5bdb2aec - - - - -] Context impl SQLiteImpl. -2020-08-17 20:12:03.174 929 INFO alembic.runtime.migration [req-b49e7ec0-389a-48e6-bcaf-d2bd5bdb2aec - - - - -] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.test_base.TestVersion.test_init -ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan -ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan ... ok -ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri -ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri ... ok -2020-08-17 20:12:03.384 931 INFO alembic.runtime.migration [req-0f2a0340-afe4-4f09-9e7c-8d62d51a2e78 - - - - -] Context impl SQLiteImpl. -2020-08-17 20:12:03.386 931 INFO alembic.runtime.migration [req-0f2a0340-afe4-4f09-9e7c-8d62d51a2e78 - - - - -] Will assume non-transactional DDL. -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_parse_headers_ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok ... 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.test_base.TestVersion.test_lessthan -ironic.tests.unit.api.controllers.test_base.TestVersion.test_lessthan ... 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 +INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 +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.TestDelete.test_delete_nodes_subresource +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_nodes_subresource ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_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_collection_links -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links ... ok -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 -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_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.TestDelete.test_delete_chassis -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis ... 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_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_get_one -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_custom_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_non_existent_property_fail ... ok -2020-08-17 20:12:03.694 935 INFO alembic.runtime.migration [req-c4ea190d-50ba-4d44-bcdc-a5533a6306a3 - - - - -] Context impl SQLiteImpl. -2020-08-17 20:12:03.696 935 INFO alembic.runtime.migration [req-c4ea190d-50ba-4d44-bcdc-a5533a6306a3 - - - - -] Will assume non-transactional DDL. -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 +2021-09-21 04:54:30.082 10890 INFO alembic.runtime.migration [req-cd718627-c647-4d86-9ebb-559e8d27a275 - - - - -] Context impl SQLiteImpl. +2021-09-21 04:54:30.084 10890 INFO alembic.runtime.migration [req-cd718627-c647-4d86-9ebb-559e8d27a275 - - - - -] Will assume non-transactional DDL. +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 +2021-09-21 04:54:30.795 10922 INFO alembic.runtime.migration [req-e0444084-8228-4329-932f-786be9c9515a - - - - -] Context impl SQLiteImpl. +2021-09-21 04:54:30.831 10922 INFO alembic.runtime.migration [req-e0444084-8228-4329-932f-786be9c9515a - - - - -] Will assume non-transactional DDL. +2021-09-21 04:54:30.988 10907 INFO alembic.runtime.migration [req-ab3d9ae0-951d-466b-b357-2188181e2ecf - - - - -] Context impl SQLiteImpl. +2021-09-21 04:54:31.018 10907 INFO alembic.runtime.migration [req-ab3d9ae0-951d-466b-b357-2188181e2ecf - - - - -] Will assume non-transactional DDL. +2021-09-21 04:54:30.662 10887 INFO alembic.runtime.migration [req-1cf3875c-4ea6-415a-8764-7f9d3d06f78f - - - - -] Context impl SQLiteImpl. +2021-09-21 04:54:30.702 10887 INFO alembic.runtime.migration [req-1cf3875c-4ea6-415a-8764-7f9d3d06f78f - - - - -] Will assume non-transactional DDL. +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.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.TestPatch.test_patch_nodes_subresource -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_patch_nodes_subresource ... ok -2020-08-17 20:12:03.821 937 INFO alembic.runtime.migration [req-d51cb7de-21fc-4a48-805b-d6013ff799b7 - - - - -] Context impl SQLiteImpl. -2020-08-17 20:12:03.823 937 INFO alembic.runtime.migration [req-d51cb7de-21fc-4a48-805b-d6013ff799b7 - - - - -] Will assume non-transactional DDL. -2020-08-17 20:12:03.907 933 INFO alembic.runtime.migration [req-e0f2bcd1-0ca3-4722-a37a-3981f073d7f7 - - - - -] Context impl SQLiteImpl. -2020-08-17 20:12:03.913 933 INFO alembic.runtime.migration [req-e0f2bcd1-0ca3-4722-a37a-3981f073d7f7 - - - - -] Will assume non-transactional DDL. -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.test_base.TestVersion.test_equals -ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ... ok -ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals -ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ... 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 -2020-08-17 20:12:04.969 939 INFO alembic.runtime.migration [req-191c6dde-583c-48df-8614-69ddbfed3179 - - - - -] Context impl SQLiteImpl. -2020-08-17 20:12:04.971 939 INFO alembic.runtime.migration [req-191c6dde-583c-48df-8614-69ddbfed3179 - - - - -] Will assume non-transactional DDL. -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_chassis.TestDelete.test_delete_chassis_with_node -ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_with_node ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_old_version ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.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.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_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.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.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_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.test_base.TestVersion.test_parse_headers_bad_length +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_bad_length ... ok ironic.tests.unit.api.controllers.v1.test_chassis.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.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_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_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_one -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init +ironic.tests.unit.api.controllers.v1.test_chassis.TestChassisObject.test_chassis_init ... 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_detail_query +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query ... 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.test_base.TestVersion.test_greaterthan +ironic.tests.unit.api.controllers.test_base.TestVersion.test_greaterthan ... 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.test_base.TestBase.test_bad_uri +ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri ... ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_init +ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid ... ok ironic.tests.unit.api.controllers.v1.test_chassis.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_many -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ... 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_chassis.TestListChassis.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_invalid_description ... ok -INFO [alembic.runtime.migration] Running stamp_revision -> 664f85c2f622 -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.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.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_headers_latest ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_latest ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load -ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cannot_load ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_link ... 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_ok +ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_error ... ok ironic.tests.unit.api.controllers.v1.test_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_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_chassis.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis +ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis ... 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.TestPost.test_create_chassis_toolong_description +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_toolong_description ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.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.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.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 -GET: /v1/chassis/?limit=3 {} -GOT:{'chassis': [{'uuid': 'c8275124-5c29-49ac-98ae-8c0b29e3ad39', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c8275124-5c29-49ac-98ae-8c0b29e3ad39', 'rel': 'self'}, {'href': 'http://localhost/chassis/c8275124-5c29-49ac-98ae-8c0b29e3ad39', 'rel': 'bookmark'}]}, {'uuid': '5ee26df1-bb0f-4603-b01b-0a3c950f4de4', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/5ee26df1-bb0f-4603-b01b-0a3c950f4de4', 'rel': 'self'}, {'href': 'http://localhost/chassis/5ee26df1-bb0f-4603-b01b-0a3c950f4de4', 'rel': 'bookmark'}]}, {'uuid': 'd2d7a123-7726-43fe-98c3-488bfb7c6dbd', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/d2d7a123-7726-43fe-98c3-488bfb7c6dbd', 'rel': 'self'}, {'href': 'http://localhost/chassis/d2d7a123-7726-43fe-98c3-488bfb7c6dbd', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&limit=3&marker=d2d7a123-7726-43fe-98c3-488bfb7c6dbd'} -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': '2020-08-18T08:12:04.142632+00:00'}]} -GET: /v1/chassis?sort_key=uuid {} -GOT:{'chassis': [{'uuid': '97939a39-5ff7-424b-8bfb-432f78bb547e', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/97939a39-5ff7-424b-8bfb-432f78bb547e', 'rel': 'self'}, {'href': 'http://localhost/chassis/97939a39-5ff7-424b-8bfb-432f78bb547e', 'rel': 'bookmark'}]}, {'uuid': '9ba472ff-37b9-4f63-a48a-c0916a95a70a', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/9ba472ff-37b9-4f63-a48a-c0916a95a70a', 'rel': 'self'}, {'href': 'http://localhost/chassis/9ba472ff-37b9-4f63-a48a-c0916a95a70a', 'rel': 'bookmark'}]}, {'uuid': 'f8e870be-1365-432e-8238-c14dedded976', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/f8e870be-1365-432e-8238-c14dedded976', 'rel': 'self'}, {'href': 'http://localhost/chassis/f8e870be-1365-432e-8238-c14dedded976', 'rel': 'bookmark'}]}]} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.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_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_detail +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_type_hidden_in_lower_version ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_multi ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key ... 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_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_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_chassis.TestListChassis.test_links +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ... 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_driver.TestDriverProperties.test_driver_properties_cached +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_cached ... ok +DELETE: /v1/chassis/f2929197-58ae-4c5c-b028-1dc8c036b206 +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e3f6c88f-b51e-4378-bb20-6cf9247c5cfd +Openstack-Request-Id: req-7912b3cb-8f0b-44c5-a8c7-0d02ec4654cd 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/ab5e2b6d-2e75-4861-9877-b134be4aa8fe [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis f2929197-58ae-4c5c-b028-1dc8c036b206 could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-10a887a0-2753-452e-8d5c-b131b36d92fd +Openstack-Request-Id: req-e74e2172-08a9-4117-848e-6c7b830e0d6d 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 ab5e2b6d-2e75-4861-9877-b134be4aa8fe could not be found.\", \"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\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\", \"debuginfo\": null}"} +GET: /v1/chassis?detail=True&fields=description {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-d4df26ff-32c5-44bd-943f-b1a59edd5a0b +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/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-5ef238be-09c5-4ea1-81e3-fdc8528b4f71 +Openstack-Request-Id: req-d611cd0b-d574-47d9-8f8f-6cd0bf3cd167 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/bad_driver/properties {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92 {} +GOT:{'uuid': '6a1a1b1e-e135-4695-9608-ddd089a73c92', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92', 'rel': 'self'}, {'href': 'http://foo/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:54:32.735752+00:00'} +GET: /v1/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92 {} +GOT:{'uuid': '6a1a1b1e-e135-4695-9608-ddd089a73c92', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92', 'rel': 'self'}, {'href': 'http://foo/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:54:32.735752+00:00'} +GET: /chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92 {} +GOT:{'uuid': '6a1a1b1e-e135-4695-9608-ddd089a73c92', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92', 'rel': 'self'}, {'href': 'http://foo/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/6a1a1b1e-e135-4695-9608-ddd089a73c92/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:54:32.735752+00:00'} +GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3bd819a4-2bc2-48a5-b61e-84a9ed778c5e +Openstack-Request-Id: req-a9762fe4-096b-443b-a87f-a70562902646 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}"} -POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} +GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', '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-09-20T14:54:36.247313+00:00'} +GET: /v1/chassis/nodes {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-81693bd9-4166-480e-bc21-2da3b586b30f +Openstack-Request-Id: req-3a91614e-7365-48b5-bf41-a7ee70706ed3 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?type=classic {} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis id not specified.\", \"debuginfo\": null}"} +POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1e59ca8b-c757-4cca-b398-90c1a5598f15 +Openstack-Request-Id: req-10cefdaf-e508-4ee8-9d1e-9048cd07ca78 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?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': ['iscsi', 'direct'], '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': []}]} +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/test/properties {} +GOT:{'prop1': 'Property 1. Required.'} +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'}]}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_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_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 +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'}]}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_many +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ... 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.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_get_one +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one ... 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_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 -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ... 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 -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_chassis_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_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_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_driver.TestListDrivers.test_driver_vendor_passthru_sync -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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.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.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_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_sort_key_invalid -ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key_invalid ... ok -GET: /v1/chassis {} -GOT:{'chassis': [{'uuid': 'bd853c5e-0905-47a2-bc01-20d36ec70479', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/bd853c5e-0905-47a2-bc01-20d36ec70479', 'rel': 'self'}, {'href': 'http://localhost/chassis/bd853c5e-0905-47a2-bc01-20d36ec70479', 'rel': 'bookmark'}]}, {'uuid': '247bdcb5-a0ff-4d38-a261-1faa10090867', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/247bdcb5-a0ff-4d38-a261-1faa10090867', 'rel': 'self'}, {'href': 'http://localhost/chassis/247bdcb5-a0ff-4d38-a261-1faa10090867', 'rel': 'bookmark'}]}, {'uuid': 'dc447763-c085-4481-857e-ad3375313379', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/dc447763-c085-4481-857e-ad3375313379', 'rel': 'self'}, {'href': 'http://localhost/chassis/dc447763-c085-4481-857e-ad3375313379', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&limit=3&marker=dc447763-c085-4481-857e-ad3375313379'} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} -GOT:Response: 406 Not Acceptable +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_chassis.TestListChassis.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_get_one_custom_fields ... ok +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b22db848-0fcd-4511-801a-11dd6b149657 +Openstack-Request-Id: req-efd92eda-df09-41b5-9817-825c64beb9dc 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}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/chassis {} +GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} +GET: /v1/chassis?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/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6cc0a87a-ff19-4f94-badb-7d8890fac1aa +Openstack-Request-Id: req-8f008f99-6c0c-48a3-b017-acb2d22c5f20 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/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} +GOT:{'nodes': [{'uuid': '8f10a273-c1dd-44bb-a40e-afe6cee0df9f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8f10a273-c1dd-44bb-a40e-afe6cee0df9f', 'rel': 'self'}, {'href': 'http://localhost/nodes/8f10a273-c1dd-44bb-a40e-afe6cee0df9f', 'rel': 'bookmark'}]}, {'uuid': '978897da-83bc-4e8f-b1f9-ec66de2e2d3e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/978897da-83bc-4e8f-b1f9-ec66de2e2d3e', 'rel': 'self'}, {'href': 'http://localhost/nodes/978897da-83bc-4e8f-b1f9-ec66de2e2d3e', 'rel': 'bookmark'}]}]} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} +GOT:{'nodes': [{'uuid': '8f10a273-c1dd-44bb-a40e-afe6cee0df9f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8f10a273-c1dd-44bb-a40e-afe6cee0df9f', 'rel': 'self'}, {'href': 'http://localhost/nodes/8f10a273-c1dd-44bb-a40e-afe6cee0df9f', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=1&marker=8f10a273-c1dd-44bb-a40e-afe6cee0df9f'} +GET: /v1/chassis?sort_key=foo {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a891fcc1-164a-47f5-9b3a-937b8ecbb663 +Openstack-Request-Id: req-9147410d-852f-45e7-9e5e-0799befa7480 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/b553e1dd-d363-4674-961b-9e0b93f1049b [{'path': '/extra/foo2', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/chassis?sort_key=extra {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c4096ce8-2c81-4328-a6e2-c77d8dd0cf4f +Openstack-Request-Id: req-02f6cfa9-b231-4eb5-a252-c6e01c291968 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "b553e1dd-d363-4674-961b-9e0b93f1049b", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b", "rel": "self"}, {"href": "http://localhost/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b/nodes", "rel": "bookmark"}], "updated_at": "2020-08-18T08:12:05.494448+00:00", "created_at": "2020-08-18T08:12:05.399322+00:00"} -GET: /v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b {} -GOT:{'uuid': 'b553e1dd-d363-4674-961b-9e0b93f1049b', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b', 'rel': 'self'}, {'href': 'http://localhost/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-08-18T08:12:05.494448+00:00', 'created_at': '2020-08-18T08:12:05.399322+00:00'} -PATCH: /v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} +POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} +GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-ee6b4fcd-c48c-415c-a7ff-120fe62106b9 +Openstack-Request-Id: req-c41a4e66-60b5-49b3-a8b0-9efdc94cc6a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "b553e1dd-d363-4674-961b-9e0b93f1049b", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b", "rel": "self"}, {"href": "http://localhost/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b/nodes", "rel": "bookmark"}], "updated_at": "2020-08-18T08:12:05.607225+00:00", "created_at": "2020-08-18T08:12:05.399322+00:00"} -GET: /v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b {} -GOT:{'uuid': 'b553e1dd-d363-4674-961b-9e0b93f1049b', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b', 'rel': 'self'}, {'href': 'http://localhost/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/b553e1dd-d363-4674-961b-9e0b93f1049b/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-08-18T08:12:05.607225+00:00', 'created_at': '2020-08-18T08:12:05.399322+00:00'} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 1334} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"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-98098951-ed2a-4186-bc54-005b79526b21 +Openstack-Request-Id: req-da481b36-72e4-43fd-bd13-c5bdc915b586 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/driver/properties {} -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"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'}]} +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-e022dc44-3bc3-4adc-9138-49f6b044635d +Openstack-Request-Id: req-a41334a6-579b-45ee-a7ce-f612ce0e3e1d 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}"} -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 {}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 +null +GET: /v1/drivers?type=classic {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-953a782c-98d6-4fa5-950b-d41096983553 +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?type=classic {} +GOT:{'drivers': []} +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': []}]}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_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_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_driver.TestListDrivers.test_driver_vendor_passthru_delete +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_delete ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one +ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one ... 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_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_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_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_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.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_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.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ... 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_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_driver.TestListDrivers.test_links ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links ... ok -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ... ok -ironic.tests.unit.api.controllers.v1.test_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_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.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_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_singular +ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_singular ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_subcontroller_old_version ... ok +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_doesnt_contain_id ... ok +DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-1e607331-41fb-4bf1-a514-d087ebc2c712 +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/chassis/?limit=3 {} +GOT:{'chassis': [{'uuid': 'cb1ace72-fce0-488b-9948-969885ebf3fd', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/cb1ace72-fce0-488b-9948-969885ebf3fd', 'rel': 'self'}, {'href': 'http://localhost/chassis/cb1ace72-fce0-488b-9948-969885ebf3fd', 'rel': 'bookmark'}]}, {'uuid': 'f5e4f685-0904-44b3-95af-2d44ddd572c4', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/f5e4f685-0904-44b3-95af-2d44ddd572c4', 'rel': 'self'}, {'href': 'http://localhost/chassis/f5e4f685-0904-44b3-95af-2d44ddd572c4', 'rel': 'bookmark'}]}, {'uuid': '77416ce1-b7d4-4db3-b952-0ef8bf6f5fa9', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/77416ce1-b7d4-4db3-b952-0ef8bf6f5fa9', 'rel': 'self'}, {'href': 'http://localhost/chassis/77416ce1-b7d4-4db3-b952-0ef8bf6f5fa9', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&limit=3&marker=77416ce1-b7d4-4db3-b952-0ef8bf6f5fa9'} +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-09-20T14:54:34.300343+00:00'}]} +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/0a2cb265-28ad-4e55-895a-325a3b296d8f {} +GOT:{'uuid': '0a2cb265-28ad-4e55-895a-325a3b296d8f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f', 'rel': 'self'}, {'href': 'http://localhost/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:54:42.324963+00:00'} +GET: /v1/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f {} +GOT:{'uuid': '0a2cb265-28ad-4e55-895a-325a3b296d8f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f', 'rel': 'self'}, {'href': 'http://localhost/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:54:42.324963+00:00'} +GET: /chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f {} +GOT:{'uuid': '0a2cb265-28ad-4e55-895a-325a3b296d8f', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f', 'rel': 'self'}, {'href': 'http://localhost/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/0a2cb265-28ad-4e55-895a-325a3b296d8f/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:54:42.324963+00:00'} 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/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': '2020-08-18T08:12:04.275662+00:00'} +GOT:{'chassis': [{'uuid': '617cf232-4f30-490a-8db9-22af3d41b97d', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/617cf232-4f30-490a-8db9-22af3d41b97d', 'rel': 'self'}, {'href': 'http://localhost/chassis/617cf232-4f30-490a-8db9-22af3d41b97d', 'rel': 'bookmark'}]}, {'uuid': 'ac2cc8d4-4fea-499c-a350-bf3e817c06d1', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ac2cc8d4-4fea-499c-a350-bf3e817c06d1', 'rel': 'self'}, {'href': 'http://localhost/chassis/ac2cc8d4-4fea-499c-a350-bf3e817c06d1', 'rel': 'bookmark'}]}, {'uuid': '819f90d1-1579-45bf-84d1-419d47170339', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/819f90d1-1579-45bf-84d1-419d47170339', 'rel': 'self'}, {'href': 'http://localhost/chassis/819f90d1-1579-45bf-84d1-419d47170339', 'rel': 'bookmark'}]}, {'uuid': '8a7f5ff2-7563-4aca-a8dd-1452191a7ee7', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/8a7f5ff2-7563-4aca-a8dd-1452191a7ee7', 'rel': 'self'}, {'href': 'http://localhost/chassis/8a7f5ff2-7563-4aca-a8dd-1452191a7ee7', 'rel': 'bookmark'}]}, {'uuid': '258cec7c-10cb-4a05-9d8e-479d205bed47', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/258cec7c-10cb-4a05-9d8e-479d205bed47', 'rel': 'self'}, {'href': 'http://localhost/chassis/258cec7c-10cb-4a05-9d8e-479d205bed47', 'rel': 'bookmark'}]}]} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fe8c1f97-54d3-46b7-a6ef-29c2a7d99b58 +Openstack-Request-Id: req-4a44ea37-4453-4a44-8dab-8198ed5f33c3 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/9657e2c5-d475-44d8-a957-0524d79be4e9 [{'path': '/description', 'op': 'remove'}] +PATCH: /v1/chassis/c1776f62-ce78-4707-97b9-8c44c0fb856e [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-fbd80a91-9f16-4b5f-a4ff-57eb89c395da +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 c1776f62-ce78-4707-97b9-8c44c0fb856e 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-9dd5010e-915c-4bc1-b423-d083c52952ec +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"} +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'}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.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.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.TestDriverProperties.test_driver_properties_invalid_driver_name +ironic.tests.unit.api.controllers.v1.test_driver.TestDriverProperties.test_driver_properties_invalid_driver_name ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_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_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_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_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_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.TestDelete.test_delete_node +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_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_driver.TestListDrivers.test_driver_vendor_passthru_sync +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_driver.TestListDrivers.test_drivers_type_filter_bad_value +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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.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.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.TestAttachDetachVif.test_vif_detach +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach ... ok +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers ... 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_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.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_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.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.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.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.TestDelete.test_delete_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource ... ok +GET: /v1/chassis {} +GOT:{'chassis': []} +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-45996f19-9296-4465-9c36-dc96acf80442 +Openstack-Request-Id: req-efd2477f-79f1-4eb7-a3d9-4dfd69f9bbdd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "9657e2c5-d475-44d8-a957-0524d79be4e9", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/9657e2c5-d475-44d8-a957-0524d79be4e9", "rel": "self"}, {"href": "http://localhost/chassis/9657e2c5-d475-44d8-a957-0524d79be4e9", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/9657e2c5-d475-44d8-a957-0524d79be4e9/nodes", "rel": "self"}, {"href": "http://localhost/chassis/9657e2c5-d475-44d8-a957-0524d79be4e9/nodes", "rel": "bookmark"}], "updated_at": "2020-08-18T08:12:05.130939+00:00", "created_at": "2020-08-18T08:12:05.068188+00:00"} -GET: /v1/chassis/9657e2c5-d475-44d8-a957-0524d79be4e9 {} -GOT:{'uuid': '9657e2c5-d475-44d8-a957-0524d79be4e9', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/9657e2c5-d475-44d8-a957-0524d79be4e9', 'rel': 'self'}, {'href': 'http://localhost/chassis/9657e2c5-d475-44d8-a957-0524d79be4e9', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/9657e2c5-d475-44d8-a957-0524d79be4e9/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/9657e2c5-d475-44d8-a957-0524d79be4e9/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-08-18T08:12:05.130939+00:00', 'created_at': '2020-08-18T08:12:05.068188+00:00'} -PATCH: /v1/chassis/5eb42ffd-c34f-446b-aa1e-afbd157d166b [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] +{"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-09-20T14:54:40.361714+00:00", "created_at": "2021-09-20T14:54:39.806160+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-09-20T14:54:40.361714+00:00', 'created_at': '2021-09-20T14:54:39.806160+00:00'} +PATCH: /v1/chassis/38a612e5-fda6-4e08-8de8-32c92fb217fd [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-34a9db23-e4e6-4dbc-b66e-40ced5756092 +Openstack-Request-Id: req-78be8998-900a-4785-810f-d02f50000745 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "5eb42ffd-c34f-446b-aa1e-afbd157d166b", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/5eb42ffd-c34f-446b-aa1e-afbd157d166b", "rel": "self"}, {"href": "http://localhost/chassis/5eb42ffd-c34f-446b-aa1e-afbd157d166b", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/5eb42ffd-c34f-446b-aa1e-afbd157d166b/nodes", "rel": "self"}, {"href": "http://localhost/chassis/5eb42ffd-c34f-446b-aa1e-afbd157d166b/nodes", "rel": "bookmark"}], "updated_at": "2020-08-18T08:12:05.456378+00:00", "created_at": "2020-08-18T08:12:05.358617+00:00"} -GET: /v1/chassis/5eb42ffd-c34f-446b-aa1e-afbd157d166b {} -GOT:{'uuid': '5eb42ffd-c34f-446b-aa1e-afbd157d166b', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/5eb42ffd-c34f-446b-aa1e-afbd157d166b', 'rel': 'self'}, {'href': 'http://localhost/chassis/5eb42ffd-c34f-446b-aa1e-afbd157d166b', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/5eb42ffd-c34f-446b-aa1e-afbd157d166b/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/5eb42ffd-c34f-446b-aa1e-afbd157d166b/nodes', 'rel': 'bookmark'}], 'updated_at': '2020-08-18T08:12:05.456378+00:00', 'created_at': '2020-08-18T08:12:05.358617+00:00'} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} -GOT:Response: 400 Bad Request +{"uuid": "38a612e5-fda6-4e08-8de8-32c92fb217fd", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/38a612e5-fda6-4e08-8de8-32c92fb217fd", "rel": "self"}, {"href": "http://localhost/chassis/38a612e5-fda6-4e08-8de8-32c92fb217fd", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/38a612e5-fda6-4e08-8de8-32c92fb217fd/nodes", "rel": "self"}, {"href": "http://localhost/chassis/38a612e5-fda6-4e08-8de8-32c92fb217fd/nodes", "rel": "bookmark"}], "updated_at": "2021-09-20T14:54:47.498416+00:00", "created_at": "2021-09-20T14:54:41.504316+00:00"} +GET: /v1/chassis/38a612e5-fda6-4e08-8de8-32c92fb217fd {} +GOT:{'uuid': '38a612e5-fda6-4e08-8de8-32c92fb217fd', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/38a612e5-fda6-4e08-8de8-32c92fb217fd', 'rel': 'self'}, {'href': 'http://localhost/chassis/38a612e5-fda6-4e08-8de8-32c92fb217fd', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/38a612e5-fda6-4e08-8de8-32c92fb217fd/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/38a612e5-fda6-4e08-8de8-32c92fb217fd/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-09-20T14:54:47.498416+00:00', 'created_at': '2021-09-20T14:54:41.504316+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-c6fa3c2c-e623-467c-a553-e49c9e76b5cd +Openstack-Request-Id: req-2afe97b0-b748-4e83-81e5-16fe623c614e 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}"} +{"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-09-20T14:54:48.509287+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-09-20T14:54:48.509287+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 +Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +Openstack-Request-Id: req-47204370-9f3b-4399-9212-6da160e05610 +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": "2021-09-20T14:54:50.495625+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-09-20T14:54:50.495625+00:00'} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} -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'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type/properties', 'rel': 'bookmark'}]} POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-550b626f-b5ac-4584-9c49-079a7406365e +Openstack-Request-Id: req-0c74644e-2220-4853-adf3-a2f7ddc1da74 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/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': []}ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_ok_dynamic_latest_interfaces +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_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_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_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.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_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_driver_vendor_passthru_method_not_found -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_method_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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.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_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.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_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_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_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_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_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.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_driver.TestListDrivers.test_drivers_type_filter_dynamic ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_dynamic ... ok -GET: /v1/bad/path {} -GOT:Response: 404 Not Found -Content-Type: application/json -{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +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.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_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.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_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_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.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_collection_links +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_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.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version ... ok DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content -Openstack-Request-Id: req-381e5494-cca6-4309-af21-184cc53d1016 +Openstack-Request-Id: req-bfd78f5c-33df-4234-b442-62220acfcce5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -4552,76 +4742,55 @@ GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0f1dc533-a836-4d69-965e-107ec31a1d5a +Openstack-Request-Id: req-06d49b37-ce99-4033-b0c4-7da5cc3e5ff8 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 -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-3b080db6-cd68-4b0a-9bc7-82e734914f2f -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 {} -GOT:{'chassis': []} -GET: /v1/chassis/nodes {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-802d2ecd-feba-4c7d-a9ec-01521934e05b -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/chassis?fields=uuid,extra {} +GOT:{'chassis': [{'uuid': '88bff4b3-12ba-4b60-9e21-42ba5f4f5fac', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/88bff4b3-12ba-4b60-9e21-42ba5f4f5fac', 'rel': 'self'}, {'href': 'http://localhost/chassis/88bff4b3-12ba-4b60-9e21-42ba5f4f5fac', 'rel': 'bookmark'}]}, {'uuid': '6c42b58d-e46f-4be8-b836-c356d972daeb', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/6c42b58d-e46f-4be8-b836-c356d972daeb', 'rel': 'self'}, {'href': 'http://localhost/chassis/6c42b58d-e46f-4be8-b836-c356d972daeb', 'rel': 'bookmark'}]}, {'uuid': '0ba6a9a2-de85-4776-8850-bac2fd13e553', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/0ba6a9a2-de85-4776-8850-bac2fd13e553', 'rel': 'self'}, {'href': 'http://localhost/chassis/0ba6a9a2-de85-4776-8850-bac2fd13e553', '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-09-20T14:54:40.225490+00:00'} +GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=extra,description {} +GOT:{'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]} GET: /v1/chassis {} 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 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}] +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-17a3d35c-ac68-4669-87a5-a7b5e4cb3ce9 -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": "2020-08-18T08:12:05.835103+00:00", "created_at": "2020-08-18T08:12:05.763930+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': '2020-08-18T08:12:05.835103+00:00', 'created_at': '2020-08-18T08:12:05.763930+00:00'} -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-0d2cad76-651b-4235-b280-ba3c6986725b +Openstack-Request-Id: req-1c820fe7-68d2-4b12-97af-2045758dcb61 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 {'extra': {}, 'description': 'data-center-1-chassis'} -GOT:Response: 201 Created +{"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-09-20T14:54:49.539525+00:00", "created_at": "2021-09-20T14:54:48.968133+00:00"} +GET: /v1/drivers/driver/properties {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/chassis/d234894f-2adc-49f5-9548-30efa054f380 -Openstack-Request-Id: req-37102b1c-7042-40a5-bf7b-d5575dfc9a55 +Openstack-Request-Id: req-d1721da4-3986-4863-bd91-eeda76cb56bd X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "d234894f-2adc-49f5-9548-30efa054f380", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/d234894f-2adc-49f5-9548-30efa054f380", "rel": "self"}, {"href": "http://localhost/chassis/d234894f-2adc-49f5-9548-30efa054f380", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/d234894f-2adc-49f5-9548-30efa054f380/nodes", "rel": "self"}, {"href": "http://localhost/chassis/d234894f-2adc-49f5-9548-30efa054f380/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:06.140949+00:00"} -GET: /v1/chassis {} -GOT:{'chassis': [{'uuid': 'd234894f-2adc-49f5-9548-30efa054f380', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/d234894f-2adc-49f5-9548-30efa054f380', 'rel': 'self'}, {'href': 'http://localhost/chassis/d234894f-2adc-49f5-9548-30efa054f380', 'rel': 'bookmark'}]}]} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"} POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} -GOT:Response: 202 Accepted +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e30f2fcf-d99b-443d-ab6b-484d07e174bc +Openstack-Request-Id: req-4431e7aa-4e89-4ea2-a21a-09b9567680a7 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?detail=False {} -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The driver 'fake-hardware-type' is unknown.\", \"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/nope {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6cbcc442-2b94-46fc-90aa-906a3b90bf79 +Openstack-Request-Id: req-e00c7ccf-6f8d-4da7-ab27-567344049252 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}"} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type {} GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], '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 {} @@ -4630,390 +4799,406 @@ 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 {} GOT:{} -GET: /drivers/fake-hardware-type/properties {}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_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_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.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.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.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 -DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes -GOT:Response: 403 Forbidden +GET: /drivers/fake-hardware-type/properties {} +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'}]}]} +GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-f87c106f-4644-41c2-8db4-395bfa76e916 +Openstack-Request-Id: req-2b9a1e67-1569-45ff-bf59-9a33c1cf3ab2 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/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/detail {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version +ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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.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.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_key_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.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_missing_step_value +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_value ... ok +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-06981814-de71-4087-a437-9c0fa93b2e7b +Openstack-Request-Id: req-25672b9c-0985-47f3-be29-fdb80e30089c 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?fields=uuid,extra {} -GOT:{'chassis': [{'uuid': '2c36bd37-a777-4077-81f8-96fdfcbd22d4', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/2c36bd37-a777-4077-81f8-96fdfcbd22d4', 'rel': 'self'}, {'href': 'http://localhost/chassis/2c36bd37-a777-4077-81f8-96fdfcbd22d4', 'rel': 'bookmark'}]}, {'uuid': '6a32a437-44e1-493b-9486-80bcfeb7de0d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/6a32a437-44e1-493b-9486-80bcfeb7de0d', 'rel': 'self'}, {'href': 'http://localhost/chassis/6a32a437-44e1-493b-9486-80bcfeb7de0d', 'rel': 'bookmark'}]}, {'uuid': '0f5a7c6c-8af6-4a1e-b1c7-23f12140d6ba', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/0f5a7c6c-8af6-4a1e-b1c7-23f12140d6ba', 'rel': 'self'}, {'href': 'http://localhost/chassis/0f5a7c6c-8af6-4a1e-b1c7-23f12140d6ba', 'rel': 'bookmark'}]}]} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=extra,description {} -GOT:{'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]} -GET: /v1/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1 {} -GOT:{'uuid': 'cf1d8421-47a6-4bd3-a12f-d541d293c4e1', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1', 'rel': 'self'}, {'href': 'http://localhost/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:05.875231+00:00'} -GET: /v1/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1 {} -GOT:{'uuid': 'cf1d8421-47a6-4bd3-a12f-d541d293c4e1', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1', 'rel': 'self'}, {'href': 'http://localhost/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:05.875231+00:00'} -GET: /chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1 {} -GOT:{'uuid': 'cf1d8421-47a6-4bd3-a12f-d541d293c4e1', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1', 'rel': 'self'}, {'href': 'http://localhost/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/cf1d8421-47a6-4bd3-a12f-d541d293c4e1/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:05.875231+00:00'} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +{"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-f3e6efba-da85-46fc-8934-586fc1a28607 +Location: http://localhost/v1/chassis/04a142e5-5fbe-4c42-844b-c070d41b52ab +Openstack-Request-Id: req-24376b2c-0640-42b8-a916-5d46baaf51d8 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/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'chassis-new-description', 'op': 'replace'}] -GOT:Response: 200 OK +{"uuid": "04a142e5-5fbe-4c42-844b-c070d41b52ab", "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/04a142e5-5fbe-4c42-844b-c070d41b52ab", "rel": "self"}, {"href": "http://localhost/chassis/04a142e5-5fbe-4c42-844b-c070d41b52ab", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/04a142e5-5fbe-4c42-844b-c070d41b52ab/nodes", "rel": "self"}, {"href": "http://localhost/chassis/04a142e5-5fbe-4c42-844b-c070d41b52ab/nodes", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:54:38.731381+00:00"} +GET: /v1/chassis {} +GOT:{'chassis': [{'uuid': '04a142e5-5fbe-4c42-844b-c070d41b52ab', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/04a142e5-5fbe-4c42-844b-c070d41b52ab', 'rel': 'self'}, {'href': 'http://localhost/chassis/04a142e5-5fbe-4c42-844b-c070d41b52ab', '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-8b3a0346-d50d-489e-b7d6-e84e6af4814a +Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 +Openstack-Request-Id: req-8e46834b-a95b-462c-8012-505d50f078fc 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": "2020-08-18T08:12:06.777678+00:00"} +{"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-09-20T14:54:40.158507+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': '2020-08-18T08:12:06.777678+00:00'} -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 +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-09-20T14:54:40.158507+00:00'} +DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test +GOT:Response: 202 Accepted Content-Type: application/json -Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -Openstack-Request-Id: req-c16b7a71-8590-4a5a-ac5c-a1cbe93603d2 +Openstack-Request-Id: req-abb8edcb-9e87-4851-a89a-70e65ee7cc01 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": "2020-08-18T08:12:07.149872+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': '2020-08-18T08:12:07.149872+00:00'} -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'}ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource -ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_post_nodes_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_driver.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_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.TestAttachDetachVif.test_vif_detach_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_get ... 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': '2020-08-18T08:12:04.833557+00:00'}]} -GET: /v1/chassis?detail=True {} -GOT:Response: 400 Bad Request +null +GET: /v1/drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /v1/drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://foo/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://foo/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-552bf02c-60b4-4244-ad57-fec50ce66266 +Openstack-Request-Id: req-95558730-0002-4bb4-a09b-c9dfbc718555 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/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5 {} -GOT:{'uuid': 'c2005b5a-c202-458a-80c0-ea22ff0de1b5', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5', 'rel': 'self'}, {'href': 'http://foo/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:05.306849+00:00'} -GET: /v1/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5 {} -GOT:{'uuid': 'c2005b5a-c202-458a-80c0-ea22ff0de1b5', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5', 'rel': 'self'}, {'href': 'http://foo/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:05.306849+00:00'} -GET: /chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5 {} -GOT:{'uuid': 'c2005b5a-c202-458a-80c0-ea22ff0de1b5', 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5', 'rel': 'self'}, {'href': 'http://foo/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://foo/v1/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/c2005b5a-c202-458a-80c0-ea22ff0de1b5/nodes', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:05.306849+00:00'} -GET: /v1/chassis {} -GOT:{'chassis': [{'uuid': 'e0ac692a-a0d5-4b6f-a877-8fa8cbf23189', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e0ac692a-a0d5-4b6f-a877-8fa8cbf23189', 'rel': 'self'}, {'href': 'http://localhost/chassis/e0ac692a-a0d5-4b6f-a877-8fa8cbf23189', 'rel': 'bookmark'}]}, {'uuid': '996d8795-0eb4-49b2-82de-b7e5773fe897', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/996d8795-0eb4-49b2-82de-b7e5773fe897', 'rel': 'self'}, {'href': 'http://localhost/chassis/996d8795-0eb4-49b2-82de-b7e5773fe897', 'rel': 'bookmark'}]}, {'uuid': '2ffacc65-04de-4c60-afb0-3cdd063964a8', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/2ffacc65-04de-4c60-afb0-3cdd063964a8', 'rel': 'self'}, {'href': 'http://localhost/chassis/2ffacc65-04de-4c60-afb0-3cdd063964a8', 'rel': 'bookmark'}]}, {'uuid': '4e901e42-ccc4-403d-9f8d-d6b34efe08b8', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/4e901e42-ccc4-403d-9f8d-d6b34efe08b8', 'rel': 'self'}, {'href': 'http://localhost/chassis/4e901e42-ccc4-403d-9f8d-d6b34efe08b8', 'rel': 'bookmark'}]}, {'uuid': '39b9ce13-9880-4e60-a184-89cec308f7bb', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/39b9ce13-9880-4e60-a184-89cec308f7bb', 'rel': 'self'}, {'href': 'http://localhost/chassis/39b9ce13-9880-4e60-a184-89cec308f7bb', 'rel': 'bookmark'}]}]} -GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is associated with instance aaaaaaaa-1111-bbbb-2222-cccccccccccc.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance +GOT:Response: 202 Accepted +Openstack-Request-Id: req-3274f950-bd3f-4d42-8695-1fa09a5a6cc2 +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/foo GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-e16510e2-cfd5-4b55-99ca-15e9b6082060 +Openstack-Request-Id: req-45f75a41-962a-449b-b0aa-c99113f35bfc 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}"} -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': '2020-08-18T08:12:06.603539+00:00'} -GET: /v1/chassis?sort_key=foo {} +X-Openstack-Ironic-Api-Version: 1.5 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-108ca6dd-44c3-4c3e-b11e-9ce7cdf6fbc1 +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?associated=true {} +GOT:{'nodes': [{'uuid': '699e52e8-b6f0-4e11-8a4e-60c48a6717df', 'instance_uuid': '4e46a304-e1d7-48c0-a119-c1f5b17f0603', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/699e52e8-b6f0-4e11-8a4e-60c48a6717df', 'rel': 'self'}, {'href': 'http://localhost/nodes/699e52e8-b6f0-4e11-8a4e-60c48a6717df', 'rel': 'bookmark'}]}, {'uuid': '06aeae22-8850-4170-9416-4a466238af24', 'instance_uuid': '59c58919-192c-4a76-9436-26263820003c', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/06aeae22-8850-4170-9416-4a466238af24', 'rel': 'self'}, {'href': 'http://localhost/nodes/06aeae22-8850-4170-9416-4a466238af24', 'rel': 'bookmark'}]}, {'uuid': '93af25ee-2b24-430e-95f8-6cb948c6db17', 'instance_uuid': '433f50b2-02c9-4200-ba58-f6167e42af01', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/93af25ee-2b24-430e-95f8-6cb948c6db17', 'rel': 'self'}, {'href': 'http://localhost/nodes/93af25ee-2b24-430e-95f8-6cb948c6db17', 'rel': 'bookmark'}]}, {'uuid': 'ca35b419-29bb-4628-82a6-4d1f4fd3b74a', 'instance_uuid': '05b00b8c-4e1f-4503-86af-2650560b5731', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ca35b419-29bb-4628-82a6-4d1f4fd3b74a', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca35b419-29bb-4628-82a6-4d1f4fd3b74a', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=True {} +GOT:{'nodes': [{'uuid': '699e52e8-b6f0-4e11-8a4e-60c48a6717df', 'instance_uuid': '4e46a304-e1d7-48c0-a119-c1f5b17f0603', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/699e52e8-b6f0-4e11-8a4e-60c48a6717df', 'rel': 'self'}, {'href': 'http://localhost/nodes/699e52e8-b6f0-4e11-8a4e-60c48a6717df', 'rel': 'bookmark'}]}, {'uuid': '06aeae22-8850-4170-9416-4a466238af24', 'instance_uuid': '59c58919-192c-4a76-9436-26263820003c', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/06aeae22-8850-4170-9416-4a466238af24', 'rel': 'self'}, {'href': 'http://localhost/nodes/06aeae22-8850-4170-9416-4a466238af24', 'rel': 'bookmark'}]}, {'uuid': '93af25ee-2b24-430e-95f8-6cb948c6db17', 'instance_uuid': '433f50b2-02c9-4200-ba58-f6167e42af01', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/93af25ee-2b24-430e-95f8-6cb948c6db17', 'rel': 'self'}, {'href': 'http://localhost/nodes/93af25ee-2b24-430e-95f8-6cb948c6db17', 'rel': 'bookmark'}]}, {'uuid': 'ca35b419-29bb-4628-82a6-4d1f4fd3b74a', 'instance_uuid': '05b00b8c-4e1f-4503-86af-2650560b5731', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ca35b419-29bb-4628-82a6-4d1f4fd3b74a', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca35b419-29bb-4628-82a6-4d1f4fd3b74a', '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.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.TestAttachDetachVif.test_vif_list +ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.TestDelete.test_delete_volume_connectors_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource ... ok +GET: /v1/bad/path {} +GOT:Response: 404 Not Found +Content-Type: application/json +{"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} +GET: /v1/chassis {} +GOT:{'chassis': [{'uuid': '64d14243-6fc6-49c0-be0b-028a96ce7806', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/64d14243-6fc6-49c0-be0b-028a96ce7806', 'rel': 'self'}, {'href': 'http://localhost/chassis/64d14243-6fc6-49c0-be0b-028a96ce7806', 'rel': 'bookmark'}]}, {'uuid': '32d06a86-a359-4853-8852-501d64a8c25c', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/32d06a86-a359-4853-8852-501d64a8c25c', 'rel': 'self'}, {'href': 'http://localhost/chassis/32d06a86-a359-4853-8852-501d64a8c25c', 'rel': 'bookmark'}]}, {'uuid': 'e3b14964-4a49-4cd0-9d5a-9904e1b1cc62', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e3b14964-4a49-4cd0-9d5a-9904e1b1cc62', 'rel': 'self'}, {'href': 'http://localhost/chassis/e3b14964-4a49-4cd0-9d5a-9904e1b1cc62', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&limit=3&marker=e3b14964-4a49-4cd0-9d5a-9904e1b1cc62'} +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-09-20T14:54:39.500916+00:00'}]} +GET: /v1/chassis?sort_key=uuid {} +GOT:{'chassis': [{'uuid': '44310037-1596-4172-97dd-e160033ca5c2', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/44310037-1596-4172-97dd-e160033ca5c2', 'rel': 'self'}, {'href': 'http://localhost/chassis/44310037-1596-4172-97dd-e160033ca5c2', 'rel': 'bookmark'}]}, {'uuid': '6e6dd6ef-6fb3-40e7-a2db-d19253243171', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/6e6dd6ef-6fb3-40e7-a2db-d19253243171', 'rel': 'self'}, {'href': 'http://localhost/chassis/6e6dd6ef-6fb3-40e7-a2db-d19253243171', 'rel': 'bookmark'}]}, {'uuid': 'a35b3ab3-fea3-478d-a278-2c40411027ba', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/a35b3ab3-fea3-478d-a278-2c40411027ba', 'rel': 'self'}, {'href': 'http://localhost/chassis/a35b3ab3-fea3-478d-a278-2c40411027ba', '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-a284e2ec-746c-4fa9-bf0b-06f08d67f231 +Openstack-Request-Id: req-21efd82a-e613-4b13-bfd0-7945194aa186 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 {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a new attribute (/foo) to the root of the resource is not allowed\", \"debuginfo\": null}"} +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-37723810-aa42-470f-9309-e1a3d41f316b +Openstack-Request-Id: req-aac22588-5eac-4f3b-b860-4a0100b3a3d4 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}"} -PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'test', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/chassis/1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9 [{'path': '/description', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4fe53189-1ced-492e-9f40-b688f50f6cb1 +Openstack-Request-Id: req-222008c7-d722-4fda-8dc4-adab1ebf61be 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": "2020-08-18T08:12:07.081612+00:00", "created_at": "2020-08-18T08:12:06.988104+00:00"} -DELETE: /v1/drivers/fake-hardware-type/vendor_passthru/do_test -GOT:Response: 202 Accepted +{"uuid": "1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9", "rel": "self"}, {"href": "http://localhost/chassis/1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9/nodes", "rel": "self"}, {"href": "http://localhost/chassis/1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9/nodes", "rel": "bookmark"}], "updated_at": "2021-09-20T14:54:50.286958+00:00", "created_at": "2021-09-20T14:54:49.703929+00:00"} +GET: /v1/chassis/1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9 {} +GOT:{'uuid': '1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9', 'rel': 'self'}, {'href': 'http://localhost/chassis/1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/1a1ab3e1-a2b2-40a6-a5a7-65c01a29b5c9/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-09-20T14:54:50.286958+00:00', 'created_at': '2021-09-20T14:54:49.703929+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?detail=False {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b9150b93-a4c3-4ebc-bc8e-537f819defae +Openstack-Request-Id: req-2e1fda0c-4ad1-4a0a-94c4-1b2241fd1077 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/drivers/fake-hardware-type/vendor_passthru {'test_key': 'test_value'} +X-Openstack-Ironic-Api-Version: 1.29 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} +GET: /v1/drivers?type=working {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-64ffe7de-fc01-42d6-a0fa-027f8dc91502 +Openstack-Request-Id: req-c1a6024a-eb9a-4133-b9f6-af17cf7afd6e 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}"} -GET: /v1/drivers?detail=True {} -GOT:Response: 406 Not Acceptable +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}"} +POST: /v1/nodes/node-39/vifs {'id': '2115f08f-542a-4e73-9e26-964661394477'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-c0ef9a1c-87fa-43e4-be93-8132cc58c15c +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.28 + +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-212385f9-e2b0-4d44-a50b-b36a3884472d +Openstack-Request-Id: req-2a9b476e-7778-4a32-ab87-1a79977f81bc 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}"}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.TestListNodes.test_get_network_interface_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.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_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_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_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.TestAttachDetachVif.test_vif_detach -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach ... 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_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_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.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_raid_logical_disk_properties_cached -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_cached ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ... 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.TestCheckCleanSteps.test__check_clean_steps_valid -ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_valid ... ok +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a logical name or UUID but received invalid%id^.\", \"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': '2021-09-20T14:54:59.615579+00:00', 'updated_at': None}]} +GET: /v1/nodes?instance_uuid=60bf3546-ba37-47a9-9444-f1f070ad24a9 {} +GOT:{'nodes': [{'uuid': '6795035a-980e-42d6-8ed9-cf0367bd97ff', 'instance_uuid': '60bf3546-ba37-47a9-9444-f1f070ad24a9', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6795035a-980e-42d6-8ed9-cf0367bd97ff', 'rel': 'self'}, {'href': 'http://localhost/nodes/6795035a-980e-42d6-8ed9-cf0367bd97ff', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {}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.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_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_driver.TestListDrivers.test_raid_logical_disk_properties_older_version -ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_older_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_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_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_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_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_conductor_unavailable ... 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_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_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_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name ... 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.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.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.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.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 - -GOT:{'foo': 'description of foo'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} -GOT:Response: 404 Not Found +GET: /v1/chassis?detail=True {} +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/foo/maintenance -GOT:Response: 202 Accepted -Openstack-Request-Id: req-092e6056-96a6-4f3e-aa1e-f4878e3bcb44 +Openstack-Request-Id: req-6d335d6a-00ec-4ed8-a99a-a682685a3ccf 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/detail?sort_key=resource_class {} -GOT:{'nodes': [{'uuid': '3e84e147-0e62-4686-946a-27e6d04c8746', '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/3e84e147-0e62-4686-946a-27e6d04c8746', 'rel': 'self'}, {'href': 'http://localhost/nodes/3e84e147-0e62-4686-946a-27e6d04c8746', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/3e84e147-0e62-4686-946a-27e6d04c8746/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/3e84e147-0e62-4686-946a-27e6d04c8746/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/3e84e147-0e62-4686-946a-27e6d04c8746/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/3e84e147-0e62-4686-946a-27e6d04c8746/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-08-18T08:12:07.811281+00:00'}, {'uuid': 'bc66248b-3b86-4f11-b436-292fb1a8da7f', '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/bc66248b-3b86-4f11-b436-292fb1a8da7f', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc66248b-3b86-4f11-b436-292fb1a8da7f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/bc66248b-3b86-4f11-b436-292fb1a8da7f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc66248b-3b86-4f11-b436-292fb1a8da7f/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/bc66248b-3b86-4f11-b436-292fb1a8da7f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/bc66248b-3b86-4f11-b436-292fb1a8da7f/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-08-18T08:12:07.797733+00:00'}, {'uuid': 'c553a8db-2ef6-4571-be98-140440d8a55e', '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/c553a8db-2ef6-4571-be98-140440d8a55e', 'rel': 'self'}, {'href': 'http://localhost/nodes/c553a8db-2ef6-4571-be98-140440d8a55e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/c553a8db-2ef6-4571-be98-140440d8a55e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c553a8db-2ef6-4571-be98-140440d8a55e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c553a8db-2ef6-4571-be98-140440d8a55e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c553a8db-2ef6-4571-be98-140440d8a55e/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-08-18T08:12:07.783447+00:00'}]} -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': '2020-08-18T08:12:08.090898+00:00'}]} -GET: /v1/nodes?fault=power failure {} -GOT:{'nodes': [{'uuid': '5942197e-2a45-4ff3-b419-c7aafd47c6bb', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb', 'rel': 'self'}, {'href': 'http://localhost/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?fault=clean failure {} -GOT:{'nodes': [{'uuid': 'c75c111b-cb63-48e1-b438-1e004710fd03', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c75c111b-cb63-48e1-b438-1e004710fd03', 'rel': 'self'}, {'href': 'http://localhost/nodes/c75c111b-cb63-48e1-b438-1e004710fd03', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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.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_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.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.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.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_nodes_by_invalid_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_resource_class ... ok -DELETE: /v1/chassis/7f2dc0c8-9491-4eb7-85f1-ae9b093750c6 -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} +PATCH: /v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d [{'path': '/extra/foo2', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-54fab382-6218-4558-8742-9c7c14ddfea1 +Openstack-Request-Id: req-83902008-d13f-4b9f-9502-c2b95d331ba2 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 7f2dc0c8-9491-4eb7-85f1-ae9b093750c6 could not be found.\", \"debuginfo\": null}"} -GET: /v1/chassis?detail=True&fields=description {} -GOT:Response: 400 Bad Request +{"uuid": "ccb1006a-2901-46a0-8d69-0c1411b3d34d", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d", "rel": "self"}, {"href": "http://localhost/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d/nodes", "rel": "self"}, {"href": "http://localhost/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d/nodes", "rel": "bookmark"}], "updated_at": "2021-09-20T14:54:35.133882+00:00", "created_at": "2021-09-20T14:54:34.577290+00:00"} +GET: /v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d {} +GOT:{'uuid': 'ccb1006a-2901-46a0-8d69-0c1411b3d34d', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d', 'rel': 'self'}, {'href': 'http://localhost/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-09-20T14:54:35.133882+00:00', 'created_at': '2021-09-20T14:54:34.577290+00:00'} +PATCH: /v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f002e06c-0a87-4bd9-b914-28c10300735b +Openstack-Request-Id: req-1b238868-6295-4235-85d4-f4e43b96bc49 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/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/nodes {} -GOT:{'nodes': [{'uuid': '70b76b85-d767-4de0-be61-c72bd831d23a', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/70b76b85-d767-4de0-be61-c72bd831d23a', 'rel': 'self'}, {'href': 'http://localhost/nodes/70b76b85-d767-4de0-be61-c72bd831d23a', 'rel': 'bookmark'}]}, {'uuid': '1878f50c-38a4-4ac8-be47-b5d4d97fa3d1', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1878f50c-38a4-4ac8-be47-b5d4d97fa3d1', 'rel': 'self'}, {'href': 'http://localhost/nodes/1878f50c-38a4-4ac8-be47-b5d4d97fa3d1', 'rel': 'bookmark'}]}]} -GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} -GOT:{'nodes': [{'uuid': '70b76b85-d767-4de0-be61-c72bd831d23a', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/70b76b85-d767-4de0-be61-c72bd831d23a', 'rel': 'self'}, {'href': 'http://localhost/nodes/70b76b85-d767-4de0-be61-c72bd831d23a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=1&marker=70b76b85-d767-4de0-be61-c72bd831d23a'} -POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "ccb1006a-2901-46a0-8d69-0c1411b3d34d", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d", "rel": "self"}, {"href": "http://localhost/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d", "rel": "bookmark"}], "nodes": [{"href": "http://localhost/v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d/nodes", "rel": "self"}, {"href": "http://localhost/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d/nodes", "rel": "bookmark"}], "updated_at": "2021-09-20T14:54:36.233523+00:00", "created_at": "2021-09-20T14:54:34.577290+00:00"} +GET: /v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d {} +GOT:{'uuid': 'ccb1006a-2901-46a0-8d69-0c1411b3d34d', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d', 'rel': 'self'}, {'href': 'http://localhost/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/ccb1006a-2901-46a0-8d69-0c1411b3d34d/nodes', 'rel': 'bookmark'}], 'updated_at': '2021-09-20T14:54:36.233523+00:00', 'created_at': '2021-09-20T14:54:34.577290+00:00'} +PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -Openstack-Request-Id: req-03612f9f-1e0e-44cc-b4dd-64647f780995 +Openstack-Request-Id: req-ec032da6-2bad-4aa3-9642-1cfe0050887c 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"} -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/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'foo': 123}, 'description': 'data-center-1-chassis'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/uuid' is an internal attribute and can not be updated\", \"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.'} +POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} +GOT:Response: 202 Accepted Content-Type: application/json -Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 -Openstack-Request-Id: req-680f0586-28e1-4044-bf0a-5eb9100717f6 +Openstack-Request-Id: req-f165e2f5-2128-4fa6-9952-1153dd139e6c 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": "2020-08-18T08:12:07.249673+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': '2020-08-18T08:12:07.249673+00:00'} -GET: /v1/drivers/test/properties {} -GOT:{'prop1': 'Property 1. Required.'} -GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} -GOT:{'foo': 'bar'} -GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} -GOT:{'foo': 'bar'} -POST: /v1/nodes/node-39/vifs {'id': '8e657d3a-3775-4e63-8c6a-0dab277851f6'} +null +GET: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {} +GOT:foo +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 "} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 204 No Content -Openstack-Request-Id: req-9ac8ac45-eeb8-4452-afa8-623131811733 +Openstack-Request-Id: req-e3b93bed-e2cb-49ff-9db9-1a3c9f688e10 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 +X-Openstack-Ironic-Api-Version: 1.1 -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/4c8b3ba2-7493-46b4-9ca6-20870593f6a1 +DELETE: /v1/nodes/foo.1 GOT:Response: 204 No Content -Openstack-Request-Id: req-47e56467-d9ad-49a6-a526-656ff58192cb +Openstack-Request-Id: req-b4c2a4e7-0a8a-4726-92b0-aa40d9640317 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 +X-Openstack-Ironic-Api-Version: 1.5 -DELETE: /v1/nodes/foo -GOT:Response: 404 Not Found +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-b88e0a7d-ea2d-404e-b1ee-18c0a14e6bd1 +Openstack-Request-Id: req-dc590087-e357-4f90-87c7-d9142799f445 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}"} +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-fb04431c-bcd3-4354-8467-5d826ef123c0 +Openstack-Request-Id: req-9565f8fe-a477-4089-8524-9103b92397ab 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/nodes {} -GOT:{'nodes': [{'uuid': '6bc95d93-0dba-4b42-b12b-0fb8228524b4', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6bc95d93-0dba-4b42-b12b-0fb8228524b4', 'rel': 'self'}, {'href': 'http://localhost/nodes/6bc95d93-0dba-4b42-b12b-0fb8228524b4', 'rel': 'bookmark'}]}, {'uuid': '378fd8ba-8307-40b6-b019-ca801218dc7c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/378fd8ba-8307-40b6-b019-ca801218dc7c', 'rel': 'self'}, {'href': 'http://localhost/nodes/378fd8ba-8307-40b6-b019-ca801218dc7c', 'rel': 'bookmark'}]}, {'uuid': 'e45cf1fc-fa85-4b77-a68d-53304d1925c3', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e45cf1fc-fa85-4b77-a68d-53304d1925c3', 'rel': 'self'}, {'href': 'http://localhost/nodes/e45cf1fc-fa85-4b77-a68d-53304d1925c3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=e45cf1fc-fa85-4b77-a68d-53304d1925c3'}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 +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/detail {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-93e47d2d-aa08-4a1d-aa6d-04871d22381c +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/states/console {} +GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,spongebob {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-b13e4b13-15bd-4b82-a533-27a5e2abd769 +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?driver=fake {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-374cccaa-ec67-489b-a097-164d327e7c0d +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?fault=power failure {} +GOT:{'nodes': [{'uuid': 'b3af86b2-831b-49dd-9e87-283be4e806a4', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4', 'rel': 'self'}, {'href': 'http://localhost/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found_by_name_unsupported ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version_detail ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed_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.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_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail ... ok +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.TestDelete.test_delete_volume_connectors_subresource_no_connector_id +ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios +ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios ... ok -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'} +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/doesntexist/vifs {'id': '41d5268a-7f3f-4968-b1a4-50f293ac7fb2'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b9c28d1d-b15d-4ff3-ac45-3d0a4613ef01 +Openstack-Request-Id: req-0c1dc83a-1126-412b-82ac-a4b25f18d84c 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}"} -POST: /v1/nodes/doesntexist/vifs {'id': '6bebae5b-178c-4dc9-a2c3-f7db1e6a7791'} +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/node-39/vifs/9d45646a-ba41-4b55-8eb0-8ca203c90905 +GOT:Response: 204 No Content +Openstack-Request-Id: req-624635c6-5e05-4317-972b-bf83ccb49be2 +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/doesntexist/vifs/3a526745-93c3-41a9-8352-6bb473586807 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-728fa2ad-39d5-4dc3-ada8-1045113a0f11 +Openstack-Request-Id: req-acfe0be7-f7ae-4b65-8b30-9958a31195f7 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/volume/connectors +GET: /v1/nodes?associated=blah {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e4d70180-ead9-4c45-b198-b872992d18e5 +Openstack-Request-Id: req-5b9b5f13-105c-4a96-8743-92d072a2223a 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?detail=True&fields=name {} -GOT:Response: 400 Bad Request +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/detail?instance_uuid=50a21a6a-3230-4f82-8b39-789d7a257e1e {} +GOT:{'nodes': [{'uuid': 'dfb3aaaa-5798-4b31-b5b3-296cbd2f92d9', 'instance_uuid': '50a21a6a-3230-4f82-8b39-789d7a257e1e', '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/dfb3aaaa-5798-4b31-b5b3-296cbd2f92d9', 'rel': 'self'}, {'href': 'http://localhost/nodes/dfb3aaaa-5798-4b31-b5b3-296cbd2f92d9', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/dfb3aaaa-5798-4b31-b5b3-296cbd2f92d9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/dfb3aaaa-5798-4b31-b5b3-296cbd2f92d9/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:54:55.902621+00:00'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=conductor_group {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-7cfaa440-b56e-4e85-920b-644ac36d5513 +Openstack-Request-Id: req-38cb61ef-fa22-475b-ba0f-27c3a09023a3 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=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': ''} +X-Openstack-Ironic-Api-Version: 1.45 +{"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:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9e6f3baa-a773-44b4-97e6-971225bcb0fb +Openstack-Request-Id: req-357da2ab-c61a-46c0-94e1-c37ca326bd81 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -5021,221 +5206,186 @@ GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-20a2390a-3c8f-4c8a-8e7c-5a75815b1399 +Openstack-Request-Id: req-814d3fa9-c5c5-4f35-bc36-55e6bc08e9e2 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?driver=ipmi {} -GOT:{'nodes': [{'uuid': 'bb751b1c-0a18-4346-a560-ee42881a7146', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bb751b1c-0a18-4346-a560-ee42881a7146', 'rel': 'self'}, {'href': 'http://localhost/nodes/bb751b1c-0a18-4346-a560-ee42881a7146', 'rel': 'bookmark'}]}]} +GOT:{'nodes': [{'uuid': '3277eea0-03df-4e26-b030-2918edc2fcc5', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3277eea0-03df-4e26-b030-2918edc2fcc5', 'rel': 'self'}, {'href': 'http://localhost/nodes/3277eea0-03df-4e26-b030-2918edc2fcc5', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=fake-hardware {} -GOT:{'nodes': [{'uuid': '80f693b1-1a27-4e1a-b823-1e92d494eaa3', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/80f693b1-1a27-4e1a-b823-1e92d494eaa3', 'rel': 'self'}, {'href': 'http://localhost/nodes/80f693b1-1a27-4e1a-b823-1e92d494eaa3', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?fault=power failure {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-b8ace23b-6b5d-4869-975f-e0100109afe3 -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-dd9092d1-4850-46ee-a7c7-a89995ddac88 -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?provision_state=available {} -GOT:{'nodes': [{'uuid': 'f1a8abc8-fc6b-4f8b-be86-f42dd6f3a878', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f1a8abc8-fc6b-4f8b-be86-f42dd6f3a878', 'rel': 'self'}, {'href': 'http://localhost/nodes/f1a8abc8-fc6b-4f8b-be86-f42dd6f3a878', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?provision_state=deploying {} -GOT:{'nodes': [{'uuid': '9e644025-3cae-4926-a9e1-631aa6754f7b', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'deploying', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9e644025-3cae-4926-a9e1-631aa6754f7b', 'rel': 'self'}, {'href': 'http://localhost/nodes/9e644025-3cae-4926-a9e1-631aa6754f7b', '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': {}, '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': '2020-08-18T08:12:08.933266+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_get_one_with_double_json -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json ... ok +GOT:{'nodes': [{'uuid': 'c8bdb373-b8db-4d3c-bf33-4b48d1b244cd', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c8bdb373-b8db-4d3c-bf33-4b48d1b244cd', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8bdb373-b8db-4d3c-bf33-4b48d1b244cd', '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': '2021-09-20T14:55:06.088415+00:00'} +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': []}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_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_traits_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_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_detail_using_query +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query ... ok ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.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.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_node.TestListNodes.test_get_boot_device -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.TestAttachDetachVif.test_vif_list -ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.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_associated_nodes_insensitive -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_associated_nodes_insensitive ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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_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.TestBIOS.test_get_all_bios -ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_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.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.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 - -GET: /v1/nodes/detail?fault=power failure {} -GOT:{'nodes': [{'uuid': '5942197e-2a45-4ff3-b419-c7aafd47c6bb', '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/5942197e-2a45-4ff3-b419-c7aafd47c6bb', 'rel': 'self'}, {'href': 'http://localhost/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/5942197e-2a45-4ff3-b419-c7aafd47c6bb/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': '2020-08-18T08:12:08.372738+00:00'}]} -GET: /v1/nodes/detail?fault=clean failure {} -GOT:{'nodes': [{'uuid': 'c75c111b-cb63-48e1-b438-1e004710fd03', '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/c75c111b-cb63-48e1-b438-1e004710fd03', 'rel': 'self'}, {'href': 'http://localhost/nodes/c75c111b-cb63-48e1-b438-1e004710fd03', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/c75c111b-cb63-48e1-b438-1e004710fd03/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c75c111b-cb63-48e1-b438-1e004710fd03/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c75c111b-cb63-48e1-b438-1e004710fd03/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c75c111b-cb63-48e1-b438-1e004710fd03/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c75c111b-cb63-48e1-b438-1e004710fd03/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c75c111b-cb63-48e1-b438-1e004710fd03/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c75c111b-cb63-48e1-b438-1e004710fd03/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c75c111b-cb63-48e1-b438-1e004710fd03/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': '2020-08-18T08:12:08.387936+00:00'}]} -GET: /v1/nodes?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': '2020-08-18T08:12:09.468182+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': '2020-08-18T08:12:09.468182+00:00'} -GET: /v1/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d {} -GOT:{'uuid': '9d80383d-4b24-4077-a24f-5498d99fa68d', '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/9d80383d-4b24-4077-a24f-5498d99fa68d', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:09.809423+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links +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.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.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.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid +ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_interface_value_invalid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_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_network_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_and_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.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_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_links ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ... 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_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.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_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_collection_links -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_collection_links ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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_conductor_group_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields ... ok -GOT:{} -GET: /v1/drivers {} -GOT:{'drivers': []} -GET: /v1/drivers?type=classic {} -GOT:{'drivers': []} -DELETE: /v1/nodes/node-39/vifs/42e742ea-2840-4d51-b714-8ced100a6d73 +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 {} +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:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-e30681a4-ff4e-4df9-be0a-0415c9e896ce +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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/bd93a7a0-33a1-4c30-86ad-9da0ea5e45f5 GOT:Response: 204 No Content -Openstack-Request-Id: req-66072a51-7858-4328-8e00-bcccd7c5d35c +Openstack-Request-Id: req-2e881375-0635-4aec-b89e-86d47f50b36c 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/doesntexist/vifs/b4e2449b-d109-438f-97be-68667831a746 -GOT:Response: 404 Not Found +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/89ab60dd-9d42-4848-b881-acc58ab0bd7f +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-bc7e24d8-ea21-4a78-b285-44fe8099d621 +Openstack-Request-Id: req-421667ab-dfb7-4bc4-814e-24669c52499d 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}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node is locked by host , please retry after the current operation is completed.\", \"debuginfo\": null}"} DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3ef58a40-5d6e-4129-8de6-b15d96780c25 +Openstack-Request-Id: req-f2eda97d-12f5-4db2-9573-7d606aec6759 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/?limit=3 {} +GOT:{'nodes': [{'uuid': '8287ad42-3e29-476b-8523-4d2255eeb72b', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8287ad42-3e29-476b-8523-4d2255eeb72b', 'rel': 'self'}, {'href': 'http://localhost/nodes/8287ad42-3e29-476b-8523-4d2255eeb72b', 'rel': 'bookmark'}]}, {'uuid': 'e5a90b99-07da-43e6-a515-184696f2c267', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e5a90b99-07da-43e6-a515-184696f2c267', 'rel': 'self'}, {'href': 'http://localhost/nodes/e5a90b99-07da-43e6-a515-184696f2c267', 'rel': 'bookmark'}]}, {'uuid': '049600e5-484b-467a-b913-30eb30e50937', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/049600e5-484b-467a-b913-30eb30e50937', 'rel': 'self'}, {'href': 'http://localhost/nodes/049600e5-484b-467a-b913-30eb30e50937', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=049600e5-484b-467a-b913-30eb30e50937'} GET: /v1/nodes {} -GOT:{'nodes': []} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=boot_interface,console_interface,deploy_interface,inspect_interface,management_interface,power_interface,raid_interface,vendor_interface {} -GOT:Response: 406 Not Acceptable +GOT:{'nodes': [{'uuid': '20debf42-de1e-4a86-a857-95c53eba743e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/20debf42-de1e-4a86-a857-95c53eba743e', 'rel': 'self'}, {'href': 'http://localhost/nodes/20debf42-de1e-4a86-a857-95c53eba743e', 'rel': 'bookmark'}]}, {'uuid': '7e9ddbaa-705f-4d30-b8cf-3eaf842a84bd', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7e9ddbaa-705f-4d30-b8cf-3eaf842a84bd', 'rel': 'self'}, {'href': 'http://localhost/nodes/7e9ddbaa-705f-4d30-b8cf-3eaf842a84bd', 'rel': 'bookmark'}]}, {'uuid': 'd97ca128-84b6-4bc6-bdfe-97ea337d8a4e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d97ca128-84b6-4bc6-bdfe-97ea337d8a4e', 'rel': 'self'}, {'href': 'http://localhost/nodes/d97ca128-84b6-4bc6-bdfe-97ea337d8a4e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=d97ca128-84b6-4bc6-bdfe-97ea337d8a4e'} +GET: /v1/nodes?detail=True {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-44024b5c-4462-4be8-bb63-e2ceef6a414f +Openstack-Request-Id: req-aa413bf6-9ad7-44d5-a09b-6e3f994a95d2 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/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?resource_class=foo {} -GOT:{'nodes': [{'uuid': '4196b7bb-5a23-45c8-9fb6-06bd99ef96ed', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/4196b7bb-5a23-45c8-9fb6-06bd99ef96ed', 'rel': 'self'}, {'href': 'http://localhost/nodes/4196b7bb-5a23-45c8-9fb6-06bd99ef96ed', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?resource_class=bar {} -GOT:{'nodes': [{'uuid': '9799061b-22bf-479a-a580-7e10c0ae9292', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9799061b-22bf-479a-a580-7e10c0ae9292', 'rel': 'self'}, {'href': 'http://localhost/nodes/9799061b-22bf-479a-a580-7e10c0ae9292', 'rel': 'bookmark'}]}]} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} +GOT:{'console_enabled': False, 'console_info': None} GET: /v1/nodes/detail?traits=CUSTOM_TRAIT_1 {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d474a3c8-9c8d-4b86-a29c-1feea4bcc422 +Openstack-Request-Id: req-f7008bff-964c-4640-b428-7074e675e02f 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} -GOT:{'supported_boot_devices': ['pxe']} -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': '2020-08-18T08:12:09.573696+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': '2020-08-18T08:12:09.573696+00:00'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} -GOT:{'portgroups': [{'uuid': 'd914caa4-eb7c-4122-a2fb-108a8b9e5302', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/d914caa4-eb7c-4122-a2fb-108a8b9e5302', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d914caa4-eb7c-4122-a2fb-108a8b9e5302', 'rel': 'bookmark'}]}, {'uuid': '8367269c-5c41-4d41-b9ee-0fe05435c49f', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/8367269c-5c41-4d41-b9ee-0fe05435c49f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8367269c-5c41-4d41-b9ee-0fe05435c49f', '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_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_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 - -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': '2020-08-18T08:12:09.201500+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': None, 'updated_at': None, 'created_at': '2020-08-18T08:12:09.508160+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': '2020-08-18T08:12:09.508160+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'}], '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': '2020-08-18T08:12:09.966556+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=driver_info {} +GOT:{'driver_info': {'fake_password': '******'}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-613b9ae7-56d2-4e14-b9c1-7183037db07d +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/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': '2020-08-18T08:12:09.966556+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_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.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.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many ... 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_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.TestDelete.test_delete_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found ... ok +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-09-20T14:55:11.891708+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.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 +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-a72ba9d9-95ea-47ee-a71b-7e5178a5e169 +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/bad_driver/properties {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-f86a9551-61c3-4bda-a90b-27ebace729ff +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}"} +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-e9be2c1e-bba0-47c1-b174-b2090a0270b2 +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}"} +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/properties {} -GOT:{} -GET: /drivers/fake-hardware-type/properties {} -GOT:{} -GET: /v1/drivers?type=working {} -GOT:Response: 400 Bad Request +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:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-0696cb3f-36f7-430f-8715-f76be28ebdf6 +Openstack-Request-Id: req-40873590-d396-4e76-86a5-e3f4f63cb187 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?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 {} -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'}]}]} +X-Openstack-Ironic-Api-Version: 1.29 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} +GET: /v1/drivers?detail=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': []}]} 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 {} @@ -5246,239 +5396,258 @@ 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'} -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 {} +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/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-09-20T14:55:09.168388+00:00', 'updated_at': None}} +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/foo.json +GOT:Response: 204 No Content +Openstack-Request-Id: req-9ee42dae-714d-432c-ac44-8c3a1f2485c6 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.5 +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.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.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_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.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_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.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_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_ports_subresource_noid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid ... ok + +GET: /v1/nodes/detail?sort_key=resource_class {} +GOT:{'nodes': [{'uuid': '28d7689f-95e3-4a03-9e54-09fb0a9941ff', '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/28d7689f-95e3-4a03-9e54-09fb0a9941ff', 'rel': 'self'}, {'href': 'http://localhost/nodes/28d7689f-95e3-4a03-9e54-09fb0a9941ff', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/28d7689f-95e3-4a03-9e54-09fb0a9941ff/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/28d7689f-95e3-4a03-9e54-09fb0a9941ff/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/28d7689f-95e3-4a03-9e54-09fb0a9941ff/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/28d7689f-95e3-4a03-9e54-09fb0a9941ff/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-09-20T14:55:02.523888+00:00'}, {'uuid': '9a1727ee-d913-4dd1-a7c0-2e7a1403d059', '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/9a1727ee-d913-4dd1-a7c0-2e7a1403d059', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a1727ee-d913-4dd1-a7c0-2e7a1403d059', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9a1727ee-d913-4dd1-a7c0-2e7a1403d059/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a1727ee-d913-4dd1-a7c0-2e7a1403d059/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9a1727ee-d913-4dd1-a7c0-2e7a1403d059/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a1727ee-d913-4dd1-a7c0-2e7a1403d059/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-09-20T14:55:02.294361+00:00'}, {'uuid': '47b92094-850e-4f49-9f33-300365d9c925', '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/47b92094-850e-4f49-9f33-300365d9c925', 'rel': 'self'}, {'href': 'http://localhost/nodes/47b92094-850e-4f49-9f33-300365d9c925', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/47b92094-850e-4f49-9f33-300365d9c925/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/47b92094-850e-4f49-9f33-300365d9c925/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/47b92094-850e-4f49-9f33-300365d9c925/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/47b92094-850e-4f49-9f33-300365d9c925/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-09-20T14:55:02.095443+00:00'}]} +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?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=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-52e1d312-6edf-488d-b047-358549c0432d +Openstack-Request-Id: req-f3c76577-7d61-44b2-a38d-08e2ead6c4e3 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.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -POST: /v1/nodes/node-39/vifs {'id': '2aec3a3e-5ef1-4aeb-ae93-9cafee1ead50'} +GET: /v1/nodes/spam/management/boot_device {} +GOT:{'boot_device': 'pxe', 'persistent': True} +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?fault=somefake {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c7327b81-6a15-480b-af6f-45e5ff389f98 +Openstack-Request-Id: req-e672ce1a-4d76-40bd-a624-3032ba7380d4 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}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': '1144fcf7-de5f-4f2e-9cac-bb39b58e1b7f'} +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-c47a302d-9d79-4a39-b2cb-6cee8b0c531f +Openstack-Request-Id: req-b16c358b-d13f-45d7-a61c-0dd0bbeab4d7 +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=test {} +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': '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-09-20T14:55:16.907724+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_get_boot_device +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_double_json ... ok + +GET: /v1/drivers/fake-hardware-type {} +GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} +GET: /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 {} +GOT:{} +GET: /drivers/fake-hardware-type/properties {} +GOT:{} +GET: /v1/drivers {} +GOT:{'drivers': []} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ef763758-7ff3-4792-8bff-475111d1a0d2'} +GOT:Response: 204 No Content +Openstack-Request-Id: req-30056907-3fe6-4c26-8186-46392e832732 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} -GOT:Response: 404 Not Found + +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'bad_id': 'd8622d5d-9f19-431f-8569-740c03194b2f'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fb839afc-51da-4095-969d-cc858a1d07c9 +Openstack-Request-Id: req-7cff442d-bb50-4e09-a298-4f198b9c58c0 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}"} -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/maintenance +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory keys: id\", \"debuginfo\": null}"} +DELETE: /v1/nodes/foo/maintenance GOT:Response: 202 Accepted -Openstack-Request-Id: req-aec8560e-6384-46ba-ab42-3ee25aac2bdd +Openstack-Request-Id: req-e404485a-e17f-4607-be68-54deaf1ced17 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 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-672c1f26-43a9-4115-af8e-4613eedee8a2 +Openstack-Request-Id: req-9925dfab-f9a7-4667-ae88-b159b8b60c87 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=False&fields=name {} -GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?instance_uuid=38865b07-7188-4ba3-878a-19a726df16e1 {} -GOT:{'nodes': [{'uuid': '2d5e36b1-dec5-4ec0-a23b-5acf2f927e87', 'instance_uuid': '38865b07-7188-4ba3-878a-19a726df16e1', '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/2d5e36b1-dec5-4ec0-a23b-5acf2f927e87', 'rel': 'self'}, {'href': 'http://localhost/nodes/2d5e36b1-dec5-4ec0-a23b-5acf2f927e87', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/2d5e36b1-dec5-4ec0-a23b-5acf2f927e87/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2d5e36b1-dec5-4ec0-a23b-5acf2f927e87/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:10.555163+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_instance_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.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_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields ... ok - -GOT:Response: 403 Forbidden +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-09-20T14:55:06.880008+00:00'}]} +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-7337e2bb-f0e5-4c55-aac2-77f969575eb4 +Openstack-Request-Id: req-ac5e7f6c-5287-4df5-84d4-f90ae5f5b06a 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/fake-hardware-type/vendor_passthru/do_test {} -GOT:foo -PUT: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} -GOT:Response: 202 Accepted +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/detail?associated=true {} +GOT:{'nodes': [{'uuid': '41743822-0a6a-43c5-939f-b68521191fb7', 'instance_uuid': 'a26cd456-1a1b-43de-989b-18dd96303bf5', '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/41743822-0a6a-43c5-939f-b68521191fb7', 'rel': 'self'}, {'href': 'http://localhost/nodes/41743822-0a6a-43c5-939f-b68521191fb7', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/41743822-0a6a-43c5-939f-b68521191fb7/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/41743822-0a6a-43c5-939f-b68521191fb7/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:15.024719+00:00'}, {'uuid': '7e86404b-248a-466c-b1ba-c3e3ddadef8d', 'instance_uuid': '498bbd00-078e-4289-8ab9-a63ac124f55c', '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/7e86404b-248a-466c-b1ba-c3e3ddadef8d', 'rel': 'self'}, {'href': 'http://localhost/nodes/7e86404b-248a-466c-b1ba-c3e3ddadef8d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7e86404b-248a-466c-b1ba-c3e3ddadef8d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7e86404b-248a-466c-b1ba-c3e3ddadef8d/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:15.248487+00:00'}, {'uuid': '57959977-f561-4387-974f-7d34b3aef3d9', 'instance_uuid': 'ded97a90-c863-4c10-87fb-3999bb4bff3a', '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/57959977-f561-4387-974f-7d34b3aef3d9', 'rel': 'self'}, {'href': 'http://localhost/nodes/57959977-f561-4387-974f-7d34b3aef3d9', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/57959977-f561-4387-974f-7d34b3aef3d9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/57959977-f561-4387-974f-7d34b3aef3d9/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:15.510961+00:00'}, {'uuid': 'e3a33760-f509-47dc-9be7-a40d08e0f2f3', 'instance_uuid': '567087b2-f4e3-48d5-8877-c39dab8301a0', '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/e3a33760-f509-47dc-9be7-a40d08e0f2f3', 'rel': 'self'}, {'href': 'http://localhost/nodes/e3a33760-f509-47dc-9be7-a40d08e0f2f3', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e3a33760-f509-47dc-9be7-a40d08e0f2f3/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e3a33760-f509-47dc-9be7-a40d08e0f2f3/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:15.697469+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key ... 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_one_with_json +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association ... ok + +POST: /v1/nodes/node-39/vifs {'id': '506e4c49-60f2-4b2e-984e-aea2e0aa9d80'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-291802af-b85d-4213-8c30-3d13dee6d8b8 +Openstack-Request-Id: req-825e2e1a-ea6a-4512-898e-52b7587fe4ac 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/nope {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.28 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"} +POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': '69aa0050-ccf4-4c54-87ad-4a8b13045f7c'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-92e65eac-a3f2-4f8b-97ef-88b7124fb1c2 +Openstack-Request-Id: req-e8b1246b-3fd5-477d-894d-6eb668e85a1c 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/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/foo.1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-05a0b639-8659-4138-a41f-cdf1a00c9331 +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/vifs {} +GOT:{'vifs': []} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/fake_setting {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-dc8e89ea-9497-4c36-934a-e3af6e5680b7 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.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-551e083f-68b9-4d7f-ae81-17fdd35077ec +Openstack-Request-Id: req-b9bdf4f9-6298-49dc-b9dd-5fddfe42a40c 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 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node foo could not be found.\", \"debuginfo\": null}"} -GET: /v1/nodes?associated=blah {} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-aeadf47d-9fe8-45d8-bafe-5842ec75ca42 +Openstack-Request-Id: req-9ec2b120-85b8-42ea-9d3d-4bce47e48b4d 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?associated=true {} -GOT:{'nodes': [{'uuid': 'de6ad5c7-63db-40ad-b155-b41433713f7d', 'instance_uuid': 'c12dbfd5-826d-46dc-a234-caa925fdaa39', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/de6ad5c7-63db-40ad-b155-b41433713f7d', 'rel': 'self'}, {'href': 'http://localhost/nodes/de6ad5c7-63db-40ad-b155-b41433713f7d', 'rel': 'bookmark'}]}, {'uuid': '51d994d2-e1fa-40b8-bf1c-cd2287319e57', 'instance_uuid': 'bd314505-8e57-4127-be68-1a106539c01e', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/51d994d2-e1fa-40b8-bf1c-cd2287319e57', 'rel': 'self'}, {'href': 'http://localhost/nodes/51d994d2-e1fa-40b8-bf1c-cd2287319e57', 'rel': 'bookmark'}]}, {'uuid': '6c68e8c2-1a3e-4559-9bc9-205c1378559a', 'instance_uuid': 'a04c6d81-01d0-4934-9e69-9234250f0a8d', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6c68e8c2-1a3e-4559-9bc9-205c1378559a', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c68e8c2-1a3e-4559-9bc9-205c1378559a', 'rel': 'bookmark'}]}, {'uuid': 'a4036fa6-0e19-404b-b8c7-09e9aca551dd', 'instance_uuid': 'b4c0db38-2e6a-4927-928d-3b3464c2bd4d', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a4036fa6-0e19-404b-b8c7-09e9aca551dd', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4036fa6-0e19-404b-b8c7-09e9aca551dd', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=True {} -GOT:{'nodes': [{'uuid': 'de6ad5c7-63db-40ad-b155-b41433713f7d', 'instance_uuid': 'c12dbfd5-826d-46dc-a234-caa925fdaa39', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/de6ad5c7-63db-40ad-b155-b41433713f7d', 'rel': 'self'}, {'href': 'http://localhost/nodes/de6ad5c7-63db-40ad-b155-b41433713f7d', 'rel': 'bookmark'}]}, {'uuid': '51d994d2-e1fa-40b8-bf1c-cd2287319e57', 'instance_uuid': 'bd314505-8e57-4127-be68-1a106539c01e', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/51d994d2-e1fa-40b8-bf1c-cd2287319e57', 'rel': 'self'}, {'href': 'http://localhost/nodes/51d994d2-e1fa-40b8-bf1c-cd2287319e57', 'rel': 'bookmark'}]}, {'uuid': '6c68e8c2-1a3e-4559-9bc9-205c1378559a', 'instance_uuid': 'a04c6d81-01d0-4934-9e69-9234250f0a8d', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6c68e8c2-1a3e-4559-9bc9-205c1378559a', 'rel': 'self'}, {'href': 'http://localhost/nodes/6c68e8c2-1a3e-4559-9bc9-205c1378559a', 'rel': 'bookmark'}]}, {'uuid': 'a4036fa6-0e19-404b-b8c7-09e9aca551dd', 'instance_uuid': 'b4c0db38-2e6a-4927-928d-3b3464c2bd4d', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a4036fa6-0e19-404b-b8c7-09e9aca551dd', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4036fa6-0e19-404b-b8c7-09e9aca551dd', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/?limit=3 {} -GOT:{'nodes': [{'uuid': 'b1b7decc-dce1-45c4-8d40-2595b9b255b6', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b1b7decc-dce1-45c4-8d40-2595b9b255b6', 'rel': 'self'}, {'href': 'http://localhost/nodes/b1b7decc-dce1-45c4-8d40-2595b9b255b6', 'rel': 'bookmark'}]}, {'uuid': '1a7dd0d2-e6bf-4838-9cad-eb140cc2494b', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1a7dd0d2-e6bf-4838-9cad-eb140cc2494b', 'rel': 'self'}, {'href': 'http://localhost/nodes/1a7dd0d2-e6bf-4838-9cad-eb140cc2494b', 'rel': 'bookmark'}]}, {'uuid': 'efb29070-e67b-4680-a3fc-8ecef9c69628', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/efb29070-e67b-4680-a3fc-8ecef9c69628', 'rel': 'self'}, {'href': 'http://localhost/nodes/efb29070-e67b-4680-a3fc-8ecef9c69628', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=3&marker=efb29070-e67b-4680-a3fc-8ecef9c69628'} -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'}]}]}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_get_conductor_group_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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.TestDelete.test_delete_volume_targets_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_targets_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_get_console_information_console_disabled -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information_console_disabled ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_get_one_with_json_in_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json_in_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_console_information -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_console_information ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_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_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.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_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.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.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_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.TestPatch.test_patch_duplicate_name -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_duplicate_name ... ok - -GET: /v1/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d {} -GOT:{'uuid': '9d80383d-4b24-4077-a24f-5498d99fa68d', '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/9d80383d-4b24-4077-a24f-5498d99fa68d', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:09.809423+00:00'} -GET: /nodes/9d80383d-4b24-4077-a24f-5498d99fa68d {} -GOT:{'uuid': '9d80383d-4b24-4077-a24f-5498d99fa68d', '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/9d80383d-4b24-4077-a24f-5498d99fa68d', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d80383d-4b24-4077-a24f-5498d99fa68d/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:09.809423+00:00'} -GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': 'e9b993c7-38c9-4e88-8b95-aa862b6daced', 'instance_uuid': None, 'name': 'node-0', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e9b993c7-38c9-4e88-8b95-aa862b6daced', 'rel': 'self'}, {'href': 'http://localhost/nodes/e9b993c7-38c9-4e88-8b95-aa862b6daced', 'rel': 'bookmark'}]}, {'uuid': 'db84000b-dd78-401b-a6f4-02429865c626', 'instance_uuid': None, 'name': 'node-1', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/db84000b-dd78-401b-a6f4-02429865c626', 'rel': 'self'}, {'href': 'http://localhost/nodes/db84000b-dd78-401b-a6f4-02429865c626', 'rel': 'bookmark'}]}, {'uuid': 'a0d3c82d-b1ba-41ba-94c6-6d0f1e3bef8d', 'instance_uuid': None, 'name': 'node-2', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a0d3c82d-b1ba-41ba-94c6-6d0f1e3bef8d', 'rel': 'self'}, {'href': 'http://localhost/nodes/a0d3c82d-b1ba-41ba-94c6-6d0f1e3bef8d', 'rel': 'bookmark'}]}, {'uuid': '040cf7e0-a5e4-45d3-9121-0b416ff34711', 'instance_uuid': None, 'name': 'node-3', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/040cf7e0-a5e4-45d3-9121-0b416ff34711', 'rel': 'self'}, {'href': 'http://localhost/nodes/040cf7e0-a5e4-45d3-9121-0b416ff34711', 'rel': 'bookmark'}]}, {'uuid': 'eb0cee70-cdbc-444e-b387-1e98b5775585', 'instance_uuid': None, 'name': 'node-4', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/eb0cee70-cdbc-444e-b387-1e98b5775585', 'rel': 'self'}, {'href': 'http://localhost/nodes/eb0cee70-cdbc-444e-b387-1e98b5775585', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/?limit=3&associated=True {} -GOT:{'nodes': [{'uuid': '2542377e-299e-4ae9-9bd1-5e9697086d5c', 'instance_uuid': '0a4cdfc6-0be6-4284-b481-3970a64179f1', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2542377e-299e-4ae9-9bd1-5e9697086d5c', 'rel': 'self'}, {'href': 'http://localhost/nodes/2542377e-299e-4ae9-9bd1-5e9697086d5c', 'rel': 'bookmark'}]}, {'uuid': 'e3a393c1-6b1c-4fb5-869d-db5ee21a7bbb', 'instance_uuid': '34ef9ff0-ff9a-4e53-9d09-6854ff544876', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e3a393c1-6b1c-4fb5-869d-db5ee21a7bbb', 'rel': 'self'}, {'href': 'http://localhost/nodes/e3a393c1-6b1c-4fb5-869d-db5ee21a7bbb', 'rel': 'bookmark'}]}, {'uuid': '393c1e2d-0996-444b-a887-bbbb12150c3a', 'instance_uuid': '99012484-f746-4b77-81d6-69976c712500', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/393c1e2d-0996-444b-a887-bbbb12150c3a', 'rel': 'self'}, {'href': 'http://localhost/nodes/393c1e2d-0996-444b-a887-bbbb12150c3a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=393c1e2d-0996-444b-a887-bbbb12150c3a'} -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/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': '2020-08-18T08:12:11.682681+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': '2020-08-18T08:12:11.682681+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 - +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"connector_uuid\\\"\", \"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-09-20T14:55:09.698584+00:00'}]} GET: /v1/nodes {} -GOT:{'nodes': [{'uuid': 'ae02e8a4-e5db-474e-909b-554e3e5747da', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/ae02e8a4-e5db-474e-909b-554e3e5747da', 'rel': 'self'}, {'href': 'http://localhost/nodes/ae02e8a4-e5db-474e-909b-554e3e5747da', 'rel': 'bookmark'}]}, {'uuid': '0fb5b253-d299-490b-a37c-e85b4abbb626', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/0fb5b253-d299-490b-a37c-e85b4abbb626', 'rel': 'self'}, {'href': 'http://localhost/nodes/0fb5b253-d299-490b-a37c-e85b4abbb626', 'rel': 'bookmark'}]}, {'uuid': '6f15ef94-6ef4-44d2-8109-f438a61aa046', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6f15ef94-6ef4-44d2-8109-f438a61aa046', 'rel': 'self'}, {'href': 'http://localhost/nodes/6f15ef94-6ef4-44d2-8109-f438a61aa046', 'rel': 'bookmark'}]}, {'uuid': '3bb5aac2-e6ab-4d95-a584-7b3f277a2538', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3bb5aac2-e6ab-4d95-a584-7b3f277a2538', 'rel': 'self'}, {'href': 'http://localhost/nodes/3bb5aac2-e6ab-4d95-a584-7b3f277a2538', 'rel': 'bookmark'}]}, {'uuid': 'bef641f6-09ad-4d24-bb11-dfa1c57d821e', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/bef641f6-09ad-4d24-bb11-dfa1c57d821e', 'rel': 'self'}, {'href': 'http://localhost/nodes/bef641f6-09ad-4d24-bb11-dfa1c57d821e', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?limit=3&associated=true {} -GOT:{'nodes': [{'uuid': 'cd53437f-accf-49b2-ba27-f613ef8cf28d', 'instance_uuid': '9c1d9807-b28b-4234-ae96-7470a021f158', '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/cd53437f-accf-49b2-ba27-f613ef8cf28d', 'rel': 'self'}, {'href': 'http://localhost/nodes/cd53437f-accf-49b2-ba27-f613ef8cf28d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/cd53437f-accf-49b2-ba27-f613ef8cf28d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/cd53437f-accf-49b2-ba27-f613ef8cf28d/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:11.046996+00:00'}, {'uuid': '77423451-3e7c-4943-882c-ba8566d6e53f', 'instance_uuid': 'f39d8fa2-7ffb-47d6-ab00-075f25bb9a47', '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/77423451-3e7c-4943-882c-ba8566d6e53f', 'rel': 'self'}, {'href': 'http://localhost/nodes/77423451-3e7c-4943-882c-ba8566d6e53f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/77423451-3e7c-4943-882c-ba8566d6e53f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/77423451-3e7c-4943-882c-ba8566d6e53f/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:11.060239+00:00'}, {'uuid': '550d1c85-c1d1-4692-b4d1-b043747e2516', 'instance_uuid': 'affedd84-9994-4233-88dc-fcef1e905b39', '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/550d1c85-c1d1-4692-b4d1-b043747e2516', 'rel': 'self'}, {'href': 'http://localhost/nodes/550d1c85-c1d1-4692-b4d1-b043747e2516', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/550d1c85-c1d1-4692-b4d1-b043747e2516/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/550d1c85-c1d1-4692-b4d1-b043747e2516/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:11.073394+00:00'}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=550d1c85-c1d1-4692-b4d1-b043747e2516'} -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': '2020-08-18T08:12:11.486097+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': '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': '2020-08-18T08:12:11.486097+00:00'}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group +GOT:{'nodes': []} +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?conductor_group=group1 {} +GOT:{'nodes': [{'uuid': '1de7c9d9-62da-4bc1-a798-0ddb8909597c', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c', 'rel': 'self'}, {'href': 'http://localhost/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?conductor_group=group2 {} +GOT:{'nodes': [{'uuid': 'b4c08947-6e22-435d-a5fd-7e9f0b3eaf01', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?conductor_group=group1 {} +GOT:{'nodes': [{'uuid': '1de7c9d9-62da-4bc1-a798-0ddb8909597c', '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/1de7c9d9-62da-4bc1-a798-0ddb8909597c', 'rel': 'self'}, {'href': 'http://localhost/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1de7c9d9-62da-4bc1-a798-0ddb8909597c/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-09-20T14:55:15.661799+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_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_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_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.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.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_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_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.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_remove_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ... 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 +GET: /v1/nodes?fault=clean failure {} +GOT:{'nodes': [{'uuid': '31647e8b-f9b4-4070-87b0-c40b76974ee9', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9', 'rel': 'self'}, {'href': 'http://localhost/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/detail?fault=power failure {} +GOT:{'nodes': [{'uuid': 'b3af86b2-831b-49dd-9e87-283be4e806a4', '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/b3af86b2-831b-49dd-9e87-283be4e806a4', 'rel': 'self'}, {'href': 'http://localhost/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b3af86b2-831b-49dd-9e87-283be4e806a4/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-09-20T14:55:02.977922+00:00'}]} +GET: /v1/nodes/detail?fault=clean failure {} +GOT:{'nodes': [{'uuid': '31647e8b-f9b4-4070-87b0-c40b76974ee9', '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/31647e8b-f9b4-4070-87b0-c40b76974ee9', 'rel': 'self'}, {'href': 'http://localhost/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/31647e8b-f9b4-4070-87b0-c40b76974ee9/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-09-20T14:55:03.119030+00:00'}]} +GET: /v1/nodes?provision_state=available {} +GOT:{'nodes': [{'uuid': '29b84ee5-6529-4f72-bba5-dc1dc70641a8', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/29b84ee5-6529-4f72-bba5-dc1dc70641a8', 'rel': 'self'}, {'href': 'http://localhost/nodes/29b84ee5-6529-4f72-bba5-dc1dc70641a8', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?provision_state=deploying {} +GOT:{'nodes': [{'uuid': 'a38a81f8-1a8b-4a36-b965-f542ac561d80', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'deploying', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a38a81f8-1a8b-4a36-b965-f542ac561d80', 'rel': 'self'}, {'href': 'http://localhost/nodes/a38a81f8-1a8b-4a36-b965-f542ac561d80', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?provision_state=test {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-f5787234-6c50-4b22-bc7b-d75b214b48c8 +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}"} +GET: /v1/nodes?resource_class=foo {} +GOT:{'nodes': [{'uuid': 'fe36332e-f9d1-418d-ac0b-d534b6028bb4', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/fe36332e-f9d1-418d-ac0b-d534b6028bb4', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe36332e-f9d1-418d-ac0b-d534b6028bb4', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?resource_class=bar {} +GOT:{'nodes': [{'uuid': 'd42696f3-af32-4df3-8365-8a2593ff00e0', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d42696f3-af32-4df3-8365-8a2593ff00e0', 'rel': 'self'}, {'href': 'http://localhost/nodes/d42696f3-af32-4df3-8365-8a2593ff00e0', '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': '2020-08-18T08:12:09.142510+00:00'}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} -GOT:{'boot_device': 'pxe', 'persistent': True} -GET: /v1/nodes/spam/states/console {} -GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} +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-09-20T14:55:18.403309+00:00'}]}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_get_nodes_by_invalid_driver +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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_get_nodes_by_resource_class_detail +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail ... ok + +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-7415e355-09d5-432f-a47e-8ae0f7df054e +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?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-cafcd89e-61c9-465b-8094-c39fd9a88823 +Openstack-Request-Id: req-9952c3d1-5df2-4cbb-a9e1-48a5c48f562b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 @@ -5486,1456 +5655,1366 @@ GET: /v1/nodes/detail?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-27e96c49-3a22-40ec-b887-4dc667cfc661 +Openstack-Request-Id: req-5bc80c52-10f4-4378-9a43-fe982a09d34f 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?provision_state=test {} -GOT:Response: 400 Bad Request +GET: /v1/nodes?fault=power failure {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-469db426-1e96-4611-9f38-e5bbc2f97dac +Openstack-Request-Id: req-3eaf8f24-d47f-4155-ad18-e6d1d32a5404 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?provision_state=test {} +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-a4128878-3230-4999-a7e4-dfeeee2182e0 +Openstack-Request-Id: req-49dc2de8-8c9f-48cf-bf4f-aae07d8e5371 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}"} -GET: /v1/nodes?resource_class=fake {} +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?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-0bfc11e6-36ef-43fe-a1f0-a3c21e20d795 +Openstack-Request-Id: req-8cc32adc-5241-4c80-87ac-ee0d6e26fa1b 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?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/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': '2020-08-18T08:12:11.306179+00:00'} -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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +GOT:{'supported_boot_devices': ['pxe']} +GET: /v1/nodes/spam/management/boot_device/supported {} +GOT:{'supported_boot_devices': ['pxe']} +GET: /v1/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6 {} +GOT:{'uuid': '7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6', '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/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6', 'rel': 'self'}, {'href': 'http://localhost/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:12.044803+00:00'} +GET: /v1/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6 {} +GOT:{'uuid': '7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6', '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/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6', 'rel': 'self'}, {'href': 'http://localhost/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:12.044803+00:00'} +GET: /nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6 {} +GOT:{'uuid': '7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6', '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/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6', 'rel': 'self'}, {'href': 'http://localhost/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7cebf16e-3aa4-4aee-83f4-84e0f2a44ae6/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:12.044803+00:00'} +GET: /v1/nodes?instance_uuid=fake {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-48ab507a-020a-4492-b05b-55ca0ae1d404 +Openstack-Request-Id: req-84c9e40e-00cb-445b-b1b4-d53d0956a9b7 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}"}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_traits_fields -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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 -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_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-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} -GET: /drivers/fake-hardware-type {} -GOT:{'name': 'fake-hardware-type', 'hosts': ['fake-host2', 'fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type', 'rel': 'bookmark'}]} -GET: /v1/drivers/fake-hardware-type-2 {} -GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} -GET: /drivers/fake-hardware-type-2 {} -GOT:{'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}]} -GET: /v1/drivers/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': '4f1a9f04-5a9a-4287-9497-ba23c5b350c3'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-d2b9b03b-4eac-47da-8aaf-ff59aa567b85 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 - -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'invalid%id^'} +{"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/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/123~123/ports {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ef57617b-6b61-415c-846e-7f23a322ea87 -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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/cf352649-ca9f-4180-ae0e-96d004c6ae70 -GOT:Response: 409 Conflict +{"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/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-f1fc17a3-4963-4980-9b37-f46e0bd51ec2 -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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} -GOT:{'vifs': []} -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': '2020-08-18T08:12:09.864162+00:00', 'updated_at': None}]} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 204 No Content -Openstack-Request-Id: req-db327110-b79b-4018-94ef-51bc40b2fdee +Openstack-Request-Id: req-9f87ab90-83c1-48e2-8119-4f1424997c2c 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} +GOT:{'connectors': [{'uuid': '099d98d3-8e5a-4f5b-9bf5-91f83e11a907', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/099d98d3-8e5a-4f5b-9bf5-91f83e11a907', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/099d98d3-8e5a-4f5b-9bf5-91f83e11a907', 'rel': 'bookmark'}]}, {'uuid': '32236fbc-1601-4cf5-82b5-910202533ca1', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/32236fbc-1601-4cf5-82b5-910202533ca1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/32236fbc-1601-4cf5-82b5-910202533ca1', 'rel': 'bookmark'}]}]}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_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.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_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 -DELETE: /v1/nodes/foo.json -GOT:Response: 204 No Content -Openstack-Request-Id: req-3693484e-940a-4dd1-8571-038120105597 +GET: /v1/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4 {} +GOT:{'uuid': 'fe6811b2-29dc-4cbe-b254-845f6879b5b4', '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/fe6811b2-29dc-4cbe-b254-845f6879b5b4', 'rel': 'self'}, {'href': 'http://foo/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:09.780431+00:00'} +GET: /v1/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4 {} +GOT:{'uuid': 'fe6811b2-29dc-4cbe-b254-845f6879b5b4', '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/fe6811b2-29dc-4cbe-b254-845f6879b5b4', 'rel': 'self'}, {'href': 'http://foo/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:09.780431+00:00'} +GET: /nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4 {} +GOT:{'uuid': 'fe6811b2-29dc-4cbe-b254-845f6879b5b4', '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/fe6811b2-29dc-4cbe-b254-845f6879b5b4', 'rel': 'self'}, {'href': 'http://foo/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/fe6811b2-29dc-4cbe-b254-845f6879b5b4/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:09.780431+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-09-20T14:55:12.744113+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} +GOT:{'ports': [{'uuid': '2f9409dc-a367-4203-bb5a-48ae4ed01630', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/2f9409dc-a367-4203-bb5a-48ae4ed01630', 'rel': 'self'}, {'href': 'http://localhost/ports/2f9409dc-a367-4203-bb5a-48ae4ed01630', 'rel': 'bookmark'}]}, {'uuid': 'b12b50df-f725-40f7-b802-61b5b12d47ac', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/b12b50df-f725-40f7-b802-61b5b12d47ac', 'rel': 'self'}, {'href': 'http://localhost/ports/b12b50df-f725-40f7-b802-61b5b12d47ac', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} +GOT:{'ports': [{'uuid': '2f9409dc-a367-4203-bb5a-48ae4ed01630', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/2f9409dc-a367-4203-bb5a-48ae4ed01630', 'rel': 'self'}, {'href': 'http://localhost/ports/2f9409dc-a367-4203-bb5a-48ae4ed01630', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=1&marker=2f9409dc-a367-4203-bb5a-48ae4ed01630'} +GET: /v1/nodes?sort_key=uuid {} +GOT:{'nodes': [{'uuid': '87725a4c-2500-4449-8656-047679ca6461', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/87725a4c-2500-4449-8656-047679ca6461', 'rel': 'self'}, {'href': 'http://localhost/nodes/87725a4c-2500-4449-8656-047679ca6461', 'rel': 'bookmark'}]}, {'uuid': 'c5e08033-7d10-4160-a8c8-d577b2599f0c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c5e08033-7d10-4160-a8c8-d577b2599f0c', 'rel': 'self'}, {'href': 'http://localhost/nodes/c5e08033-7d10-4160-a8c8-d577b2599f0c', 'rel': 'bookmark'}]}, {'uuid': 'e6dd3752-975d-4041-9936-d3b66f8e3223', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e6dd3752-975d-4041-9936-d3b66f8e3223', 'rel': 'self'}, {'href': 'http://localhost/nodes/e6dd3752-975d-4041-9936-d3b66f8e3223', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?sort_key=resource_class {} +GOT:{'nodes': [{'uuid': 'cf6bed2b-9b61-4b73-95b0-2b2829b5338e', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/cf6bed2b-9b61-4b73-95b0-2b2829b5338e', 'rel': 'self'}, {'href': 'http://localhost/nodes/cf6bed2b-9b61-4b73-95b0-2b2829b5338e', 'rel': 'bookmark'}]}, {'uuid': '8409520c-66fb-4e51-bb2d-ea8b5c8ff721', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/8409520c-66fb-4e51-bb2d-ea8b5c8ff721', 'rel': 'self'}, {'href': 'http://localhost/nodes/8409520c-66fb-4e51-bb2d-ea8b5c8ff721', 'rel': 'bookmark'}]}, {'uuid': '2d98dbdd-3a53-4a77-871d-dad27779aa71', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/2d98dbdd-3a53-4a77-871d-dad27779aa71', 'rel': 'self'}, {'href': 'http://localhost/nodes/2d98dbdd-3a53-4a77-871d-dad27779aa71', 'rel': 'bookmark'}]}]}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_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_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_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.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.TestListNodes.test_get_nodes_by_traits_not_allowed +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.TestListNodes.test_get_one_custom_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields ... 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': '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-09-20T14:55:11.891708+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, 'updated_at': None, 'created_at': '2021-09-20T14:55:14.535570+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-09-20T14:55:14.535570+00:00'}]} +GET: /v1/nodes/?limit=3&associated=True {} +GOT:{'nodes': [{'uuid': '102e4ecc-657c-4d8c-8562-21e193fe1571', 'instance_uuid': 'b9cf25c8-d775-42d9-866a-449a3d05cbb3', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/102e4ecc-657c-4d8c-8562-21e193fe1571', 'rel': 'self'}, {'href': 'http://localhost/nodes/102e4ecc-657c-4d8c-8562-21e193fe1571', 'rel': 'bookmark'}]}, {'uuid': '125f5717-4482-47bb-9434-c2003287cf39', 'instance_uuid': '5f29d571-be54-4046-b171-2bc82ce24f10', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/125f5717-4482-47bb-9434-c2003287cf39', 'rel': 'self'}, {'href': 'http://localhost/nodes/125f5717-4482-47bb-9434-c2003287cf39', 'rel': 'bookmark'}]}, {'uuid': '4b99bc65-3e6a-4278-b78e-c47b5e45285d', 'instance_uuid': 'e8900f3b-5558-4111-8416-8bb803455668', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/4b99bc65-3e6a-4278-b78e-c47b5e45285d', 'rel': 'self'}, {'href': 'http://localhost/nodes/4b99bc65-3e6a-4278-b78e-c47b5e45285d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=4b99bc65-3e6a-4278-b78e-c47b5e45285d'} +GET: /v1/nodes?associated=false {} +GOT:{'nodes': [{'uuid': 'd9f0cac4-67aa-4f18-8407-1241fbe86797', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d9f0cac4-67aa-4f18-8407-1241fbe86797', 'rel': 'self'}, {'href': 'http://localhost/nodes/d9f0cac4-67aa-4f18-8407-1241fbe86797', 'rel': 'bookmark'}]}, {'uuid': '50e8165c-ebd5-4365-89a0-c563dc89fd97', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/50e8165c-ebd5-4365-89a0-c563dc89fd97', 'rel': 'self'}, {'href': 'http://localhost/nodes/50e8165c-ebd5-4365-89a0-c563dc89fd97', 'rel': 'bookmark'}]}, {'uuid': '970b887f-ae32-40b9-8e0d-c03cb92d69fd', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/970b887f-ae32-40b9-8e0d-c03cb92d69fd', 'rel': 'self'}, {'href': 'http://localhost/nodes/970b887f-ae32-40b9-8e0d-c03cb92d69fd', 'rel': 'bookmark'}]}]}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_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.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_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_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_volume_subresource_link +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link ... 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'}], 'states': [{'href': '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-09-20T14:55:18.403309+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': '2021-09-20T14:55:22.137482+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-09-20T14:55:22.137482+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-09-20T14:55:24.271488+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-09-20T14:55:24.271488+00:00'}]}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.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 + +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-09-20T14:55:18.615349+00:00'} +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-09-20T14:55:20.606464+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-09-20T14:55:22.338820+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-09-20T14:55:22.338820+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/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-09-20T14:55:26.444115+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_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.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_replace_internal_field +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid ... ok + +GET: /v1/nodes/detail?conductor_group=group2 {} +GOT:{'nodes': [{'uuid': 'b4c08947-6e22-435d-a5fd-7e9f0b3eaf01', '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/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4c08947-6e22-435d-a5fd-7e9f0b3eaf01/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-09-20T14:55:15.819488+00:00'}]} +GET: /v1/nodes?provision_state=test {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-dceec209-4956-4457-96d5-b542b6d882f3 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.9 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Provision state \\\"test\\\" is not valid\", \"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'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:23.180237+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-09-20T14:55:23.180237+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': None, 'updated_at': None, 'created_at': '2021-09-20T14:55:26.681621+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-09-20T14:55:26.681621+00:00'}]}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 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-75451809-923e-4bc0-83d9-a01f024bcf11 +Openstack-Request-Id: req-35d4b6a7-4ccd-4a83-a1db-528f5e40e516 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}"} -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-3e7ff6a1-72e6-45ae-b8bc-66999517c33e -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?associated=true {} -GOT:{'nodes': [{'uuid': 'ff813185-363b-4be2-b35d-9e39fd682f56', 'instance_uuid': '871e91dd-5cb8-4abe-971a-bf5a3df34a1b', '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/ff813185-363b-4be2-b35d-9e39fd682f56', 'rel': 'self'}, {'href': 'http://localhost/nodes/ff813185-363b-4be2-b35d-9e39fd682f56', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ff813185-363b-4be2-b35d-9e39fd682f56/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ff813185-363b-4be2-b35d-9e39fd682f56/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:11.494268+00:00'}, {'uuid': 'fe6cabe9-4719-462c-ba0f-e59e3c16f3e9', 'instance_uuid': '05c2f851-5f82-45a9-9392-c35ab179af5f', '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/fe6cabe9-4719-462c-ba0f-e59e3c16f3e9', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe6cabe9-4719-462c-ba0f-e59e3c16f3e9', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/fe6cabe9-4719-462c-ba0f-e59e3c16f3e9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fe6cabe9-4719-462c-ba0f-e59e3c16f3e9/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:11.509602+00:00'}, {'uuid': 'f73565f7-4eb4-4d33-a71c-5043d6d8ae45', 'instance_uuid': '356406cb-6768-495d-8a15-97b20408b0e3', '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/f73565f7-4eb4-4d33-a71c-5043d6d8ae45', 'rel': 'self'}, {'href': 'http://localhost/nodes/f73565f7-4eb4-4d33-a71c-5043d6d8ae45', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/f73565f7-4eb4-4d33-a71c-5043d6d8ae45/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f73565f7-4eb4-4d33-a71c-5043d6d8ae45/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:11.524695+00:00'}, {'uuid': 'f988603a-14b6-4224-85ef-94cfdf787879', 'instance_uuid': 'fbdf72b1-1624-4f3e-8298-8779c6e2fd2b', '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/f988603a-14b6-4224-85ef-94cfdf787879', 'rel': 'self'}, {'href': 'http://localhost/nodes/f988603a-14b6-4224-85ef-94cfdf787879', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/f988603a-14b6-4224-85ef-94cfdf787879/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f988603a-14b6-4224-85ef-94cfdf787879/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:11.538309+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported ... ok -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_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_volume_targets_subresource_noid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid ... ok - -GET: /v1/nodes?detail=True {} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-89552cc9-09f8-4649-9ef0-6aa09d344c22 +Openstack-Request-Id: req-361ef4ef-3865-4b6c-9f72-39e82d270e68 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,extra {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"port_uuid\\\"\", \"debuginfo\": null}"} +GET: /v1/nodes/detail?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6916e0ef-5437-4f0f-9411-040f91e96db5 +Openstack-Request-Id: req-a9cbc9d3-ff90-45ff-b551-78a83a57c014 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.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=storage_interface {} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} +GOT:{'boot_device': 'pxe', 'persistent': True} +GET: /v1/nodes/detail?resource_class=foo {} +GOT:{'nodes': [{'uuid': 'abfc905c-d2f6-4eab-b872-84639b70d9da', '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/abfc905c-d2f6-4eab-b872-84639b70d9da', 'rel': 'self'}, {'href': 'http://localhost/nodes/abfc905c-d2f6-4eab-b872-84639b70d9da', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/abfc905c-d2f6-4eab-b872-84639b70d9da/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/abfc905c-d2f6-4eab-b872-84639b70d9da/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/abfc905c-d2f6-4eab-b872-84639b70d9da/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/abfc905c-d2f6-4eab-b872-84639b70d9da/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-09-20T14:55:20.514677+00:00'}]} +GET: /v1/nodes/detail?resource_class=bar {} +GOT:{'nodes': [{'uuid': '03a1e3cf-b665-41b4-81d2-6127ae7080f0', '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/03a1e3cf-b665-41b4-81d2-6127ae7080f0', 'rel': 'self'}, {'href': 'http://localhost/nodes/03a1e3cf-b665-41b4-81d2-6127ae7080f0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/03a1e3cf-b665-41b4-81d2-6127ae7080f0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/03a1e3cf-b665-41b4-81d2-6127ae7080f0/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/03a1e3cf-b665-41b4-81d2-6127ae7080f0/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/03a1e3cf-b665-41b4-81d2-6127ae7080f0/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2021-09-20T14:55:20.752559+00:00'}]} +GET: /v1/nodes?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-e76c96fd-ba8c-4604-8bc3-d94854ca5f98 +Openstack-Request-Id: req-0b171dba-2649-432d-a6fa-dd23f084c0df 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'}], 'states': [{'href': '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': '2020-08-18T08:12:11.704742+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': '2020-08-18T08:12:11.704742+00:00'}]} -GET: /v1/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17 {} -GOT:{'uuid': '6b989f0c-bb66-49b8-bebb-24934747cc17', '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/6b989f0c-bb66-49b8-bebb-24934747cc17', 'rel': 'self'}, {'href': 'http://foo/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:12.268159+00:00'} -GET: /v1/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17 {} -GOT:{'uuid': '6b989f0c-bb66-49b8-bebb-24934747cc17', '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/6b989f0c-bb66-49b8-bebb-24934747cc17', 'rel': 'self'}, {'href': 'http://foo/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:12.268159+00:00'} -GET: /nodes/6b989f0c-bb66-49b8-bebb-24934747cc17 {} -GOT:{'uuid': '6b989f0c-bb66-49b8-bebb-24934747cc17', '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/6b989f0c-bb66-49b8-bebb-24934747cc17', 'rel': 'self'}, {'href': 'http://foo/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17', 'rel': 'bookmark'}], 'ports': [{'href': 'http://foo/v1/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/6b989f0c-bb66-49b8-bebb-24934747cc17/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2020-08-18T08:12:12.268159+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_get_supported_boot_devices_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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.TestListNodes.test_node_by_instance_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid ... ok +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?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/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-09-20T14:55:27.744944+00:00'} +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}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields_invalid_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_maintenance_nodes +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_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.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_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_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_node_by_instance_uuid_wrong_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_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.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_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.TestListNodes.test_hide_fields_in_newer_versions_volume +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_volume ... ok -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} -GOT:{'portgroups': [{'uuid': 'd914caa4-eb7c-4122-a2fb-108a8b9e5302', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/d914caa4-eb7c-4122-a2fb-108a8b9e5302', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d914caa4-eb7c-4122-a2fb-108a8b9e5302', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=1&marker=d914caa4-eb7c-4122-a2fb-108a8b9e5302'} 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': '2020-08-18T08:12:10.576276+00:00'} -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/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} +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-09-20T14:55:28.506075+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-09-20T14:55:28.506075+00:00'} +GET: /v1/nodes?instance_uuid=973a1670-7d52-4fa3-84d2-39fdd814f5d9 {} +GOT:{'nodes': [{'uuid': '4f608fb6-5000-4105-a11d-11ecddaba5eb', 'instance_uuid': '973a1670-7d52-4fa3-84d2-39fdd814f5d9', 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/4f608fb6-5000-4105-a11d-11ecddaba5eb', 'rel': 'self'}, {'href': 'http://localhost/nodes/4f608fb6-5000-4105-a11d-11ecddaba5eb', '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, 'rescue_interface': None, 'storage_interface': None, 'vendor_interface': None, 'traits': [], 'bios_interface': None, 'updated_at': None, 'created_at': '2021-09-20T14:55:33.160914+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': '2021-09-20T14:55:33.160914+00:00'}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_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_volume_targets_subresource_noid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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.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.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_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.TestListNodes.test_validate_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name ... ok + +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} +GOT:{'connectors': [{'uuid': '099d98d3-8e5a-4f5b-9bf5-91f83e11a907', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/099d98d3-8e5a-4f5b-9bf5-91f83e11a907', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/099d98d3-8e5a-4f5b-9bf5-91f83e11a907', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=1&marker=099d98d3-8e5a-4f5b-9bf5-91f83e11a907'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-dcf99242-3054-4afe-a49e-ac9fb2a75682 +Openstack-Request-Id: req-38e4aba0-8863-40ca-8a6e-deb29f5e655e 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/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'}]} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'add'}] -GOT:Response: 200 OK +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_id', 'value': '1', 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-647234d0-f76d-4d65-967a-c67010940b6c +Openstack-Request-Id: req-30acc579-d5f6-4d62-8ec4-ec784a4dfd5b 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": "2020-08-18T08:12:11.581738+00:00"} -PATCH: /v1/nodes/872313ba-e69f-488a-94e4-a8a9faaabe18 [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] -GOT:Response: 409 Conflict +{"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': ''}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cfbdf99e-82f9-4130-9fe0-84d6ad98bb3a +Openstack-Request-Id: req-b8b1e4b6-d419-4581-98cf-62de69166085 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'add', 'value': 'node-0'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] +{"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': 'Windows ME'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d6057a73-48fb-4be6-a0dc-8ac2d04824cc +Openstack-Request-Id: req-a0780020-5a8b-4717-8a80-31258c802dd6 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 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +{"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': '/power_state', 'op': 'replace', 'value': 'fake-state'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-60f3e13c-17f0-4a95-bbc1-5829741ea535 +Openstack-Request-Id: req-8df667b1-852a-45a7-99cc-e4257f6da8bd 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": "2020-08-18T08:12:12.590892+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/power_state' is an internal attribute and can not be updated\", \"debuginfo\": null}"} +PATCH: /v1/nodes/f369fd43-6827-4313-8779-2ee1a10eb5e5 [{'path': '/network_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-75bbb688-2a93-4679-9570-557965efd383 +Openstack-Request-Id: req-f58bc32d-899b-4a5b-ad04-1a3ce8b53151 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": "2020-08-18T08:12:13.031404+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 - -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'f95601f4-0705-4f78-84e5-9c41bcc5d6aa'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "f369fd43-6827-4313-8779-2ee1a10eb5e5", "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/f369fd43-6827-4313-8779-2ee1a10eb5e5", "rel": "self"}, {"href": "http://localhost/nodes/f369fd43-6827-4313-8779-2ee1a10eb5e5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f369fd43-6827-4313-8779-2ee1a10eb5e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/f369fd43-6827-4313-8779-2ee1a10eb5e5/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f369fd43-6827-4313-8779-2ee1a10eb5e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f369fd43-6827-4313-8779-2ee1a10eb5e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f369fd43-6827-4313-8779-2ee1a10eb5e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/f369fd43-6827-4313-8779-2ee1a10eb5e5/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f369fd43-6827-4313-8779-2ee1a10eb5e5/states", "rel": "self"}, {"href": "http://localhost/nodes/f369fd43-6827-4313-8779-2ee1a10eb5e5/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-09-20T14:55:33.426174+00:00"} +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-789da271-389f-4197-9dd4-3e5180652146 +Openstack-Request-Id: req-87889927-ce43-4b4b-8c68-e569bdf10d81 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/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/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': '2020-08-18T08:12:09.276191+00:00', 'updated_at': None}} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -GOT:Response: 409 Conflict +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-09-20T14:55:34.976223+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-4c75de55-b7b1-4568-babe-32bce869c753 +Openstack-Request-Id: req-6fb75c81-7dc3-4aba-a2aa-813667a825a6 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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 0.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ... ok +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_maintenance_nodes_associated +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_associated ... ok + +GET: /v1/nodes/detail?limit=3&associated=true {} +GOT:{'nodes': [{'uuid': '0aa5db9b-9a3c-44eb-945e-83a26f38542f', 'instance_uuid': '133e2f9b-7ce6-4eef-826b-0611e6125236', '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/0aa5db9b-9a3c-44eb-945e-83a26f38542f', 'rel': 'self'}, {'href': 'http://localhost/nodes/0aa5db9b-9a3c-44eb-945e-83a26f38542f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/0aa5db9b-9a3c-44eb-945e-83a26f38542f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0aa5db9b-9a3c-44eb-945e-83a26f38542f/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:31.876610+00:00'}, {'uuid': '81c4574f-5cbf-4bb2-b107-98467cb9aa91', 'instance_uuid': 'f896778a-e177-48de-84db-afa6a43354e5', '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/81c4574f-5cbf-4bb2-b107-98467cb9aa91', 'rel': 'self'}, {'href': 'http://localhost/nodes/81c4574f-5cbf-4bb2-b107-98467cb9aa91', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/81c4574f-5cbf-4bb2-b107-98467cb9aa91/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/81c4574f-5cbf-4bb2-b107-98467cb9aa91/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:32.174263+00:00'}, {'uuid': 'a2a7fc45-526e-45fc-8a10-93e005d9f2ee', 'instance_uuid': '066e6c0f-290f-463d-be2a-700f3db3d572', '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/a2a7fc45-526e-45fc-8a10-93e005d9f2ee', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2a7fc45-526e-45fc-8a10-93e005d9f2ee', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/a2a7fc45-526e-45fc-8a10-93e005d9f2ee/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a2a7fc45-526e-45fc-8a10-93e005d9f2ee/ports', 'rel': 'bookmark'}], 'updated_at': None, 'created_at': '2021-09-20T14:55:32.399586+00:00'}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=a2a7fc45-526e-45fc-8a10-93e005d9f2ee'} +GET: /v1/nodes?instance_uuid=afe0e61c-8edf-4978-9cc1-c28ea2234e1a {} +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': '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-09-20T14:55:36.818570+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-09-20T14:55:36.818570+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_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_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_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_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_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_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_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_add_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_chassis_uuid ... 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-3f9a4f98-c45d-4668-858d-2e7c804494e1 +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/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-09-20T14:55:33.167656+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-09-20T14:55:33.167656+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'}], '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-09-20T14:55:35.518263+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-09-20T14:55:35.518263+00:00'} +GET: /v1/nodes {} +GOT:{'nodes': [{'uuid': 'cf542cbc-c35d-45ec-9cb9-4d7365189763', 'instance_uuid': None, 'name': 'node-0', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/cf542cbc-c35d-45ec-9cb9-4d7365189763', 'rel': 'self'}, {'href': 'http://localhost/nodes/cf542cbc-c35d-45ec-9cb9-4d7365189763', 'rel': 'bookmark'}]}, {'uuid': '5e2a89d3-2ac0-4681-b805-4cc25cc47648', 'instance_uuid': None, 'name': 'node-1', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5e2a89d3-2ac0-4681-b805-4cc25cc47648', 'rel': 'self'}, {'href': 'http://localhost/nodes/5e2a89d3-2ac0-4681-b805-4cc25cc47648', 'rel': 'bookmark'}]}, {'uuid': '7409e92f-2957-4f25-b38b-ed0a2486616c', 'instance_uuid': None, 'name': 'node-2', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7409e92f-2957-4f25-b38b-ed0a2486616c', 'rel': 'self'}, {'href': 'http://localhost/nodes/7409e92f-2957-4f25-b38b-ed0a2486616c', 'rel': 'bookmark'}]}, {'uuid': 'a49f9195-4aa5-4305-a188-d4fc6b2c7de8', 'instance_uuid': None, 'name': 'node-3', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/a49f9195-4aa5-4305-a188-d4fc6b2c7de8', 'rel': 'self'}, {'href': 'http://localhost/nodes/a49f9195-4aa5-4305-a188-d4fc6b2c7de8', 'rel': 'bookmark'}]}, {'uuid': 'e6a39f81-a33b-47a0-b768-354daf277c6d', 'instance_uuid': None, 'name': 'node-4', 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e6a39f81-a33b-47a0-b768-354daf277c6d', 'rel': 'self'}, {'href': 'http://localhost/nodes/e6a39f81-a33b-47a0-b768-354daf277c6d', 'rel': 'bookmark'}]}]}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_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_raid +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid ... 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-4509d581-ca72-49b4-b237-877acde302b2 +Openstack-Request-Id: req-1785dac4-d41f-4262-9bec-439b8eac7489 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/ports +GET: /v1/nodes?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3a0c9125-4591-4748-8ca3-280421a2cbd3 +Openstack-Request-Id: req-acdfcee2-044d-4cc3-b1d0-339659ee1c72 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}"} -GET: /v1/nodes?instance_uuid=fbe54635-de2d-485e-9b80-8608c60794d0 {} -GOT:{'nodes': [{'uuid': '3d7b7678-16bb-49c8-91f7-f16630273d3d', 'instance_uuid': 'fbe54635-de2d-485e-9b80-8608c60794d0', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3d7b7678-16bb-49c8-91f7-f16630273d3d', 'rel': 'self'}, {'href': 'http://localhost/nodes/3d7b7678-16bb-49c8-91f7-f16630273d3d', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/detail {} -GOT:Response: 404 Not Found +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/nodes?sort_key=properties {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ee8bc70e-78f4-45b3-81d1-dccd0a9461d6 +Openstack-Request-Id: req-63c6c9a7-03ed-4d13-9947-ee7c7265812e 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/detail?sort_key=resource_class {} -GOT:Response: 406 Not Acceptable +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}"} +GET: /v1/nodes?sort_key=driver_info {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-22f4ac85-9fe6-4018-b6bb-d7fbd1c7000f +Openstack-Request-Id: req-c25fc2f4-ceef-414e-a32a-30c3953d0e3d 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:{'console_enabled': False, 'console_info': None} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,spongebob {} +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 Content-Type: application/json -Openstack-Request-Id: req-2d5ffb2c-0f3e-43d6-958b-1c4002be1c2f +Openstack-Request-Id: req-f6abf36a-5802-4ca7-a622-fcf2aa61ea51 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?fault=somefake {} +{"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-0a5031dc-19a2-4e72-9810-09c6f6e189a5 +Openstack-Request-Id: req-892c07a1-ad5d-4fe0-8a4b-d92464568c41 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 {} +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-9de9038f-cb9a-4fb2-b33e-bd1e44a54d84 +Openstack-Request-Id: req-fb72bbd8-88c6-47db-a263-c4c8fa76b408 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=foo {} -GOT:{'nodes': [{'uuid': '45da6e50-4fb5-4ce4-8bd9-53aac45b72ee', '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/45da6e50-4fb5-4ce4-8bd9-53aac45b72ee', 'rel': 'self'}, {'href': 'http://localhost/nodes/45da6e50-4fb5-4ce4-8bd9-53aac45b72ee', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/45da6e50-4fb5-4ce4-8bd9-53aac45b72ee/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/45da6e50-4fb5-4ce4-8bd9-53aac45b72ee/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/45da6e50-4fb5-4ce4-8bd9-53aac45b72ee/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/45da6e50-4fb5-4ce4-8bd9-53aac45b72ee/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-08-18T08:12:12.193269+00:00'}]} -GET: /v1/nodes/detail?resource_class=bar {} -GOT:{'nodes': [{'uuid': '8ba27764-d01d-47b4-9142-2cf8b009357d', '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/8ba27764-d01d-47b4-9142-2cf8b009357d', 'rel': 'self'}, {'href': 'http://localhost/nodes/8ba27764-d01d-47b4-9142-2cf8b009357d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/8ba27764-d01d-47b4-9142-2cf8b009357d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8ba27764-d01d-47b4-9142-2cf8b009357d/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8ba27764-d01d-47b4-9142-2cf8b009357d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8ba27764-d01d-47b4-9142-2cf8b009357d/states', 'rel': 'bookmark'}], 'network_interface': None, 'updated_at': None, 'created_at': '2020-08-18T08:12:12.229408+00:00'}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_resource_class_detail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_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_nodes_by_invalid_driver -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_invalid_driver ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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_replace_internal_field -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.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.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_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.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_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_fault_forbidden -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_fault_forbidden ... 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_nodes_by_traits_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_traits_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.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/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/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': '2020-08-18T08:12:12.338262+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': '2020-08-18T08:12:12.338262+00:00'}]} -GET: /v1/nodes?associated=true&maintenance=blah {} +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 {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6aae8b8a-25ca-4d70-bb6d-cbbcce140772 +Openstack-Request-Id: req-18c151c8-bcde-42e4-b122-21c03741bdf4 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?instance_uuid=b21cab44-f9e8-4d03-a2bf-f41747bd4b84 {} -GOT:{'nodes': [{'uuid': '181fbd1c-3789-4c0f-ade5-b0b52c9d9c6c', 'instance_uuid': 'b21cab44-f9e8-4d03-a2bf-f41747bd4b84', 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/181fbd1c-3789-4c0f-ade5-b0b52c9d9c6c', 'rel': 'self'}, {'href': 'http://localhost/nodes/181fbd1c-3789-4c0f-ade5-b0b52c9d9c6c', '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': {}, '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': '2020-08-18T08:12:13.535472+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': '2020-08-18T08:12:13.535472+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_deploy_step_hidden_in_lower_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_deploy_step_hidden_in_lower_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'}], 'states': [{'href': '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': '2020-08-18T08:12:11.945167+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': '2020-08-18T08:12:12.332333+00:00'} +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-5147183a-ece9-4796-9880-cc8a2fefeb3a +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}"} 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': '2020-08-18T08:12:12.332333+00:00'} -GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/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': {'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-09-20T14:55:34.156326+00:00'} +GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-039e1c9c-9df5-42b7-aaad-17b4c344a4ff +Openstack-Request-Id: req-75e94464-aed6-4095-8f0e-ec0a1ef9e89c 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 eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} -GET: /v1/nodes?associated=false {} -GOT:{'nodes': [{'uuid': '19b7e26c-3084-4cc8-937e-ff489a02e140', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/19b7e26c-3084-4cc8-937e-ff489a02e140', 'rel': 'self'}, {'href': 'http://localhost/nodes/19b7e26c-3084-4cc8-937e-ff489a02e140', 'rel': 'bookmark'}]}, {'uuid': 'd5529750-9986-4735-ac82-98862ac9a175', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d5529750-9986-4735-ac82-98862ac9a175', 'rel': 'self'}, {'href': 'http://localhost/nodes/d5529750-9986-4735-ac82-98862ac9a175', 'rel': 'bookmark'}]}, {'uuid': '085e5aee-b4d7-4254-93a5-e32608737000', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/085e5aee-b4d7-4254-93a5-e32608737000', 'rel': 'self'}, {'href': 'http://localhost/nodes/085e5aee-b4d7-4254-93a5-e32608737000', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/volume/targets {} +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-5f1bf638-8387-4b61-b0aa-5632d61c47d9 +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/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'guido-van-rossum'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-18df5a15-299f-4288-acb8-96b0db605a0b +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": "2021-09-20T14:55:39.924148+00:00"}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.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.TestPatch.test_patch_add_name_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_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_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_remove_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid ... ok + GET: /v1/nodes?associated=FALSE {} -GOT:{'nodes': [{'uuid': '19b7e26c-3084-4cc8-937e-ff489a02e140', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/19b7e26c-3084-4cc8-937e-ff489a02e140', 'rel': 'self'}, {'href': 'http://localhost/nodes/19b7e26c-3084-4cc8-937e-ff489a02e140', 'rel': 'bookmark'}]}, {'uuid': 'd5529750-9986-4735-ac82-98862ac9a175', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d5529750-9986-4735-ac82-98862ac9a175', 'rel': 'self'}, {'href': 'http://localhost/nodes/d5529750-9986-4735-ac82-98862ac9a175', 'rel': 'bookmark'}]}, {'uuid': '085e5aee-b4d7-4254-93a5-e32608737000', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/085e5aee-b4d7-4254-93a5-e32608737000', 'rel': 'self'}, {'href': 'http://localhost/nodes/085e5aee-b4d7-4254-93a5-e32608737000', 'rel': 'bookmark'}]}]} +GOT:{'nodes': [{'uuid': 'd9f0cac4-67aa-4f18-8407-1241fbe86797', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d9f0cac4-67aa-4f18-8407-1241fbe86797', 'rel': 'self'}, {'href': 'http://localhost/nodes/d9f0cac4-67aa-4f18-8407-1241fbe86797', 'rel': 'bookmark'}]}, {'uuid': '50e8165c-ebd5-4365-89a0-c563dc89fd97', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/50e8165c-ebd5-4365-89a0-c563dc89fd97', 'rel': 'self'}, {'href': 'http://localhost/nodes/50e8165c-ebd5-4365-89a0-c563dc89fd97', 'rel': 'bookmark'}]}, {'uuid': '970b887f-ae32-40b9-8e0d-c03cb92d69fd', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/970b887f-ae32-40b9-8e0d-c03cb92d69fd', 'rel': 'self'}, {'href': 'http://localhost/nodes/970b887f-ae32-40b9-8e0d-c03cb92d69fd', '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': '2020-08-18T08:12:13.660261+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_add_root -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root ... ok - -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=conductor_group {} -GOT:Response: 406 Not Acceptable +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-09-20T14:55:28.530840+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} +GOT:{'targets': [{'uuid': '0e91190f-78f3-4e12-bb75-c4f449bbd6c8', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/0e91190f-78f3-4e12-bb75-c4f449bbd6c8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/0e91190f-78f3-4e12-bb75-c4f449bbd6c8', 'rel': 'bookmark'}]}, {'uuid': '38d6a860-7faa-4ab5-ae15-346276b0cfc5', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/38d6a860-7faa-4ab5-ae15-346276b0cfc5', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/38d6a860-7faa-4ab5-ae15-346276b0cfc5', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} +GOT:{'targets': [{'uuid': '0e91190f-78f3-4e12-bb75-c4f449bbd6c8', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/0e91190f-78f3-4e12-bb75-c4f449bbd6c8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/0e91190f-78f3-4e12-bb75-c4f449bbd6c8', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=1&marker=0e91190f-78f3-4e12-bb75-c4f449bbd6c8'} +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-b1771e08-5d9d-4d7d-99d6-c6dbd8dbac6b +Openstack-Request-Id: req-f0d08875-1c53-442e-9d54-03103ad68af3 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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:{'console_enabled': True, 'console_info': {'test': 'test-data'}} -GET: /v1/nodes?conductor_group=group1 {} -GOT:{'nodes': [{'uuid': '41a6500b-7784-4424-953e-d4bc537e58c0', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/41a6500b-7784-4424-953e-d4bc537e58c0', 'rel': 'self'}, {'href': 'http://localhost/nodes/41a6500b-7784-4424-953e-d4bc537e58c0', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?conductor_group=group2 {} -GOT:{'nodes': [{'uuid': '74d9b8e3-03bf-4c18-9e0e-0a851c7c9731', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731', 'rel': 'self'}, {'href': 'http://localhost/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/detail?conductor_group=group1 {} -GOT:{'nodes': [{'uuid': '41a6500b-7784-4424-953e-d4bc537e58c0', '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/41a6500b-7784-4424-953e-d4bc537e58c0', 'rel': 'self'}, {'href': 'http://localhost/nodes/41a6500b-7784-4424-953e-d4bc537e58c0', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/41a6500b-7784-4424-953e-d4bc537e58c0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/41a6500b-7784-4424-953e-d4bc537e58c0/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/41a6500b-7784-4424-953e-d4bc537e58c0/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/41a6500b-7784-4424-953e-d4bc537e58c0/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/41a6500b-7784-4424-953e-d4bc537e58c0/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/41a6500b-7784-4424-953e-d4bc537e58c0/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/41a6500b-7784-4424-953e-d4bc537e58c0/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/41a6500b-7784-4424-953e-d4bc537e58c0/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': '2020-08-18T08:12:11.612669+00:00'}]} -GET: /v1/nodes/detail?conductor_group=group2 {} -GOT:{'nodes': [{'uuid': '74d9b8e3-03bf-4c18-9e0e-0a851c7c9731', '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/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731', 'rel': 'self'}, {'href': 'http://localhost/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/74d9b8e3-03bf-4c18-9e0e-0a851c7c9731/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': '2020-08-18T08:12:11.652440+00:00'}]} -GET: /v1/nodes?driver=fake {} -GOT:Response: 406 Not Acceptable +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-09-20T14:55:34.718510+00:00"} +PATCH: /v1/nodes/b4dbf032-2d21-4810-bffb-2b8c76a84f79 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-588519c7-9ed1-49ac-a4ce-5db8f634f914 +Openstack-Request-Id: req-8667ab8b-4d60-4d26-80d0-a4b5423a528e 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/detail?resource_class=fake {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node b4dbf032-2d21-4810-bffb-2b8c76a84f79 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-3cbd2b5f-bfd3-449c-8fb2-49e5fa5a99ec +Openstack-Request-Id: req-549635fc-dabb-417a-a167-b44b493f07d1 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/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': 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': '2020-08-18T08:12:13.434728+00:00'}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_inspection -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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.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_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_one -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ... 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.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.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.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.TestListNodes.test_portgroups_subresource_old_api_version -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_old_api_version ... ok - -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': '2020-08-18T08:12:13.244242+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} -GOT:Response: 406 Not Acceptable +{"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 Content-Type: application/json -Openstack-Request-Id: req-78fc0981-bc4d-4f6d-a2b1-dc886273b567 +Openstack-Request-Id: req-a3c7d4e9-8426-4ff6-902a-e677a87da16d 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/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': '2020-08-18T08:12:13.703981+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': '2020-08-18T08:12:13.703981+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': '2020-08-18T08:12:14.058259+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': '2020-08-18T08:12:14.058259+00:00'}]}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_node_by_instance_uuid_invalid_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid ... ok - -GET: /v1/nodes?associated=true&maintenance=false {} -GOT:{'nodes': [{'uuid': '3af5774a-2710-46f6-9656-cdc441e4f317', 'instance_uuid': '66b088e9-597d-426e-88f7-7c9e6fe01d33', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/3af5774a-2710-46f6-9656-cdc441e4f317', 'rel': 'self'}, {'href': 'http://localhost/nodes/3af5774a-2710-46f6-9656-cdc441e4f317', 'rel': 'bookmark'}]}, {'uuid': '79d0870c-d014-4b05-8a1f-211ea2b8e126', 'instance_uuid': 'c8ba6316-5cb0-4b89-9270-982cd001c309', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/79d0870c-d014-4b05-8a1f-211ea2b8e126', 'rel': 'self'}, {'href': 'http://localhost/nodes/79d0870c-d014-4b05-8a1f-211ea2b8e126', 'rel': 'bookmark'}]}, {'uuid': '6d1fb8bc-baa1-4a7e-bbec-55c7a3b3da76', 'instance_uuid': '5c16f1d3-c34c-4102-9da8-dc1368ea9023', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/6d1fb8bc-baa1-4a7e-bbec-55c7a3b3da76', 'rel': 'self'}, {'href': 'http://localhost/nodes/6d1fb8bc-baa1-4a7e-bbec-55c7a3b3da76', 'rel': 'bookmark'}]}, {'uuid': 'd8aefddb-63cb-4f10-9c01-118c40833fad', 'instance_uuid': 'cb291b81-7746-4cbe-8c66-9e7abbba3865', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/d8aefddb-63cb-4f10-9c01-118c40833fad', 'rel': 'self'}, {'href': 'http://localhost/nodes/d8aefddb-63cb-4f10-9c01-118c40833fad', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?associated=true&maintenance=true {} -GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': 'c4da7a2f-0d8f-45a8-9d01-6d335fe96b96', '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': 'c4da7a2f-0d8f-45a8-9d01-6d335fe96b96', '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, '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': '2020-08-18T08:12:13.814849+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': '2020-08-18T08:12:13.814849+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': '2020-08-18T08:12:14.257273+00:00'}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.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.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.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.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.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_ports_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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_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.TestPatch.test_patch_portgroups_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource ... 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-09-20T14:55:40.621599+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_replace_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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_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.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_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_add_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ... ok -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/power_state', 'op': 'replace', 'value': 'fake-state'}] -GOT:Response: 400 Bad Request +GET: /v1/nodes?fields=uuid,instance_info {} +GOT:{'nodes': [{'uuid': 'e3236c52-1c8e-4dcc-a1c8-504a6e8e144f', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/e3236c52-1c8e-4dcc-a1c8-504a6e8e144f', 'rel': 'self'}, {'href': 'http://localhost/nodes/e3236c52-1c8e-4dcc-a1c8-504a6e8e144f', 'rel': 'bookmark'}]}, {'uuid': 'ad804c63-09af-460e-8d5e-d5aa1c44d580', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/ad804c63-09af-460e-8d5e-d5aa1c44d580', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad804c63-09af-460e-8d5e-d5aa1c44d580', 'rel': 'bookmark'}]}, {'uuid': '76785632-1768-4019-b8ba-bb42612279b9', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/76785632-1768-4019-b8ba-bb42612279b9', 'rel': 'self'}, {'href': 'http://localhost/nodes/76785632-1768-4019-b8ba-bb42612279b9', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,extra {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-90964d02-aad8-4400-832c-aa4639a22cca +Openstack-Request-Id: req-9eb9fc86-d6d7-4a88-a30a-de24b571862c 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}"} -PATCH: /v1/nodes/02e08442-3ee1-49e4-8445-d4958cb26c3f [{'path': '/instance_uuid', 'op': 'remove'}] -GOT:Response: 409 Conflict +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes?driver=test {} +GOT:{'nodes': []} +GET: /v1/nodes?resource_class=test {} +GOT:{'nodes': []} +GET: /v1/nodes?traits=CUSTOM_TRAIT_1 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a9daf5c0-84b2-4c4d-ab30-80f351689ef8 +Openstack-Request-Id: req-8452b99d-6496-4f29-b4aa-3c859326bb9c 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 \\\"02e08442-3ee1-49e4-8445-d4958cb26c3f\\\" while it is in state \\\"inspecting\\\".\", \"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\": \"Unknown argument: \\\"traits\\\"\", \"debuginfo\": null}"} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-7a36bb5b-44f1-4e15-b9de-a1f45e6a549b +Openstack-Request-Id: req-3ac511bc-4142-403f-b009-8d2dc51a161b 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": "2020-08-18T08:12:14.256911+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': '2020-08-18T08:12:14.256911+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': '2020-08-18T08:12:14.256911+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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} +GET: /v1/nodes?maintenance=true {} +GOT:{'nodes': [{'uuid': '59ca6055-860d-41c6-b966-b7f376e3cca1', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/59ca6055-860d-41c6-b966-b7f376e3cca1', 'rel': 'self'}, {'href': 'http://localhost/nodes/59ca6055-860d-41c6-b966-b7f376e3cca1', 'rel': 'bookmark'}]}, {'uuid': '7232e047-696e-46b9-afe0-a384111e89d5', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/7232e047-696e-46b9-afe0-a384111e89d5', 'rel': 'self'}, {'href': 'http://localhost/nodes/7232e047-696e-46b9-afe0-a384111e89d5', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?maintenance=false {} +GOT:{'nodes': [{'uuid': '764c2c33-a6c5-45b2-80d0-3b46555ce48c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/764c2c33-a6c5-45b2-80d0-3b46555ce48c', 'rel': 'self'}, {'href': 'http://localhost/nodes/764c2c33-a6c5-45b2-80d0-3b46555ce48c', 'rel': 'bookmark'}]}, {'uuid': 'f5103cc3-d8b6-4f0d-a047-876a15a5c2b7', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f5103cc3-d8b6-4f0d-a047-876a15a5c2b7', 'rel': 'self'}, {'href': 'http://localhost/nodes/f5103cc3-d8b6-4f0d-a047-876a15a5c2b7', 'rel': 'bookmark'}]}, {'uuid': 'f700bd1d-24b0-4773-a02d-c924f63bfb04', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f700bd1d-24b0-4773-a02d-c924f63bfb04', 'rel': 'self'}, {'href': 'http://localhost/nodes/f700bd1d-24b0-4773-a02d-c924f63bfb04', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=true&maintenance=false {} +GOT:{'nodes': [{'uuid': '4f0c3403-cb25-4d74-a62c-f8c4abb00555', 'instance_uuid': '5f427613-fbd0-45fb-aaa3-39214e9e50b1', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/4f0c3403-cb25-4d74-a62c-f8c4abb00555', 'rel': 'self'}, {'href': 'http://localhost/nodes/4f0c3403-cb25-4d74-a62c-f8c4abb00555', 'rel': 'bookmark'}]}, {'uuid': '9684b1ae-f0ac-4cd0-971c-71926e36ab7d', 'instance_uuid': 'deb69a32-c0e5-446c-af9b-f72909fb6da0', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/9684b1ae-f0ac-4cd0-971c-71926e36ab7d', 'rel': 'self'}, {'href': 'http://localhost/nodes/9684b1ae-f0ac-4cd0-971c-71926e36ab7d', 'rel': 'bookmark'}]}, {'uuid': 'cffe51a9-2d39-4ecd-a6d3-7ec305de75b5', 'instance_uuid': 'fa7c154c-d408-4522-9c7f-ca906487554c', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/cffe51a9-2d39-4ecd-a6d3-7ec305de75b5', 'rel': 'self'}, {'href': 'http://localhost/nodes/cffe51a9-2d39-4ecd-a6d3-7ec305de75b5', 'rel': 'bookmark'}]}, {'uuid': '877fa66c-6164-4e54-ac11-07450fef69f2', 'instance_uuid': 'df09ee70-4e1e-44d8-ac12-173a28ac95a4', 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/877fa66c-6164-4e54-ac11-07450fef69f2', 'rel': 'self'}, {'href': 'http://localhost/nodes/877fa66c-6164-4e54-ac11-07450fef69f2', 'rel': 'bookmark'}]}]} +GET: /v1/nodes?associated=true&maintenance=true {} +GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': 'f3f9f485-facf-4587-8c02-ff0a1ca72084', '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': 'f3f9f485-facf-4587-8c02-ff0a1ca72084', '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=blah {} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-19766ec5-a595-4d2a-aec4-9f88ecb83a71 +Openstack-Request-Id: req-96c33c52-a29f-499b-b856-4bbd3c9e84a7 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": "2020-08-18T08:12:14.928878+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': '2020-08-18T08:12:14.928878+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.TestListNodes.test_sort_key_allowed -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed ... ok +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': 'c4276520-6273-429d-9948-69f33c8ec989', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c4276520-6273-429d-9948-69f33c8ec989', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4276520-6273-429d-9948-69f33c8ec989', 'rel': 'bookmark'}]}, {'uuid': 'e14d497d-b244-47cf-b04e-4f7b9b3a2d0f', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/e14d497d-b244-47cf-b04e-4f7b9b3a2d0f', 'rel': 'self'}, {'href': 'http://localhost/nodes/e14d497d-b244-47cf-b04e-4f7b9b3a2d0f', 'rel': 'bookmark'}]}, {'uuid': '227c5f9c-5aa6-4efc-91ff-28e9ad3a8fd2', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/227c5f9c-5aa6-4efc-91ff-28e9ad3a8fd2', 'rel': 'self'}, {'href': 'http://localhost/nodes/227c5f9c-5aa6-4efc-91ff-28e9ad3a8fd2', 'rel': 'bookmark'}]}, {'uuid': '7c1a24ed-ac53-401b-bead-e4a23cb72699', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7c1a24ed-ac53-401b-bead-e4a23cb72699', 'rel': 'self'}, {'href': 'http://localhost/nodes/7c1a24ed-ac53-401b-bead-e4a23cb72699', 'rel': 'bookmark'}]}, {'uuid': 'f4e8fdb8-e54e-49cb-8c07-5303cddb6cc1', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/f4e8fdb8-e54e-49cb-8c07-5303cddb6cc1', 'rel': 'self'}, {'href': 'http://localhost/nodes/f4e8fdb8-e54e-49cb-8c07-5303cddb6cc1', 'rel': 'bookmark'}]}]}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_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_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 GET: /v1/nodes?associated=False&limit=2 {} -GOT:{'nodes': [{'uuid': '104db0ef-99cd-4420-8128-c19f002ac7f2', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/104db0ef-99cd-4420-8128-c19f002ac7f2', 'rel': 'self'}, {'href': 'http://localhost/nodes/104db0ef-99cd-4420-8128-c19f002ac7f2', 'rel': 'bookmark'}]}, {'uuid': '19943381-cdc3-4fab-8d2b-074e3c114a89', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/19943381-cdc3-4fab-8d2b-074e3c114a89', 'rel': 'self'}, {'href': 'http://localhost/nodes/19943381-cdc3-4fab-8d2b-074e3c114a89', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=2&marker=19943381-cdc3-4fab-8d2b-074e3c114a89'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} +GOT:{'nodes': [{'uuid': '5473fb8b-3f57-46d4-b2c4-38a1ee7ba168', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5473fb8b-3f57-46d4-b2c4-38a1ee7ba168', 'rel': 'self'}, {'href': 'http://localhost/nodes/5473fb8b-3f57-46d4-b2c4-38a1ee7ba168', 'rel': 'bookmark'}]}, {'uuid': '797a39a1-2252-44a0-b4ee-77b732dd89a1', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/797a39a1-2252-44a0-b4ee-77b732dd89a1', 'rel': 'self'}, {'href': 'http://localhost/nodes/797a39a1-2252-44a0-b4ee-77b732dd89a1', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&limit=2&marker=797a39a1-2252-44a0-b4ee-77b732dd89a1'} +GET: /v1/nodes/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-6f770744-606e-45d3-9fb4-73de9bac0f08 +Openstack-Request-Id: req-6b08aac0-2b8b-4594-865f-f473866c8b17 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}"} -GET: /v1/nodes/volume/targets {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node volume could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/01db6507-134c-44f6-870b-ff66bdf75da1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b6c6827e-211c-4197-bdd5-9e67ed62face +Openstack-Request-Id: req-995a9856-414f-4e8a-94db-4a6177993a69 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': '/chassis_id', 'value': '1', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "01db6507-134c-44f6-870b-ff66bdf75da1", "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/01db6507-134c-44f6-870b-ff66bdf75da1", "rel": "self"}, {"href": "http://localhost/nodes/01db6507-134c-44f6-870b-ff66bdf75da1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/01db6507-134c-44f6-870b-ff66bdf75da1/ports", "rel": "self"}, {"href": "http://localhost/nodes/01db6507-134c-44f6-870b-ff66bdf75da1/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:30.545418+00:00"} +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-5c38d9bf-6350-43fa-ae12-73cb8966bc06 +Openstack-Request-Id: req-0328dd1d-7ae5-43b2-a48c-a4742263aac8 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': ''}] -GOT:Response: 406 Not Acceptable +{"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 [{'path': '/extra/non-existent', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6b6b6e41-ea22-47a3-bfdd-b908d6760fc8 +Openstack-Request-Id: req-ae0e0a90-0a29-4c8b-a069-df7fc240856f 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/a1af5f70-39a5-4307-a59a-a72cf063f54f [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] +{"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 [{'path': '/chassis_uuid', 'value': 'eeeeeeee-dddd-cccc-bbbb-aaaaaaaaaaaa', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-004a448e-9963-4606-a078-8a5f38e09890 +Openstack-Request-Id: req-c1138cb4-5529-4a9b-9607-c4ef3198b1b3 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/volume/connectors [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +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/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc [{'path': '/boot_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-00f6fb4d-5630-48a1-acae-1ae09db31e68 +Openstack-Request-Id: req-d1a5acb6-691e-4158-9a35-01c955a056e7 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/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535 [{'path': '/network_interface', 'op': 'remove'}] +{"uuid": "05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "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/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/states", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/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-09-20T14:55:38.275751+00:00"} +PATCH: /v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc [{'path': '/console_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-bfbd8623-6680-4aad-a184-c9e02eb97966 +Openstack-Request-Id: req-4a3e7a10-6436-40d0-be90-70f78e52e089 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "8a2fc3f0-6c27-4c2f-b966-8b203a2d3535", "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/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535", "rel": "self"}, {"href": "http://localhost/nodes/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535/ports", "rel": "self"}, {"href": "http://localhost/nodes/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535/volume", "rel": "self"}, {"href": "http://localhost/nodes/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535/states", "rel": "self"}, {"href": "http://localhost/nodes/8a2fc3f0-6c27-4c2f-b966-8b203a2d3535/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": "2020-08-18T08:12:14.370524+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver', 'value': 'bad-driver', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"uuid": "05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "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/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/states", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/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-09-20T14:55:38.275751+00:00"} +PATCH: /v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc [{'path': '/deploy_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-207b97e6-a62e-4375-a8cf-40eb992b5b43 +Openstack-Request-Id: req-433b452f-4a59-4827-928b-c95a0d5105d1 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/node-57.1.json [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "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/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/states", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/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-09-20T14:55:38.275751+00:00"} +PATCH: /v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc [{'path': '/inspect_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b4498649-22ca-4e84-a43b-bed2f1fd8cd2 +Openstack-Request-Id: req-5617aeba-ebf6-49e6-84f3-0816caef3950 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": "2020-08-18T08:12:15.049349+00:00"}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_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.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_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.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.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.TestPatch.test_update_conductor_group_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ... ok +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "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/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/states", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/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-09-20T14:55:38.275751+00:00"} +PATCH: /v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc [{'path': '/management_interface', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-d05dc1cf-36bb-4f62-b6ea-740cb9e74b9a +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "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/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/states", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/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-09-20T14:55:38.275751+00:00"} +PATCH: /v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc [{'path': '/power_interface', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-b0ccce40-39d0-4563-a3a7-6ada8b96b93b +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "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/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/states", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/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-09-20T14:55:38.275751+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_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_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.TestPost.test_post_volume_connectors_subresource_no_node_id -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource_no_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states ... 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 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': '2020-08-18T08:12:14.257273+00:00'} +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-09-20T14:55:35.677214+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': '2020-08-18T08:12:14.748547+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': '2020-08-18T08:12:14.748547+00:00'} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} -GOT:Response: 403 Forbidden +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-09-20T14:55:35.677214+00:00'} +GET: /v1/nodes?sort_key=resource_class {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-b8f3a2b3-7fb7-47c7-ba33-822eeccf3505 +Openstack-Request-Id: req-d35f9424-e6ed-4cb3-b4aa-2c379dc9b6f0 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/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': '2020-08-18T08:12:15.412996+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.TestListNodes.test_volume_connectors_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource ... 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': {'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': '2020-08-18T08:12:13.434728+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': '2020-08-18T08:12:13.849067+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': '2020-08-18T08:12:13.849067+00:00'} -GET: /v1/nodes?instance_uuid=7bfb6b2e-b286-469d-a9d6-1199c6d28397 {} -GOT:{'nodes': []} -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': {}, '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': '2020-08-18T08:12:14.814138+00:00'} -GET: /v1/nodes?sort_key=resource_class {} -GOT:{'nodes': [{'uuid': '088c3d4f-25ec-4846-bc91-e22d4e5cac26', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/088c3d4f-25ec-4846-bc91-e22d4e5cac26', 'rel': 'self'}, {'href': 'http://localhost/nodes/088c3d4f-25ec-4846-bc91-e22d4e5cac26', 'rel': 'bookmark'}]}, {'uuid': '7082c372-cf19-4205-afae-38299f8d0397', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/7082c372-cf19-4205-afae-38299f8d0397', 'rel': 'self'}, {'href': 'http://localhost/nodes/7082c372-cf19-4205-afae-38299f8d0397', 'rel': 'bookmark'}]}, {'uuid': '90b1c40d-34c2-49e3-a9ca-38baa8617976', 'instance_uuid': None, 'name': None, 'power_state': None, 'provision_state': 'available', 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/90b1c40d-34c2-49e3-a9ca-38baa8617976', 'rel': 'self'}, {'href': 'http://localhost/nodes/90b1c40d-34c2-49e3-a9ca-38baa8617976', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?sort_key=foo {} +X-Openstack-Ironic-Api-Version: 1.20 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/nodes/validate?node=spam {} +GOT:{} +GET: /v1/nodes/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{} +GET: /v1/nodes/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8b244836-b562-4f32-bae3-d410895bd29c +Openstack-Request-Id: req-1767c555-1bb2-4b67-a098-aa44809eeb80 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/nodes?sort_key=properties {} +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/ports [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-217e8b45-6362-4667-8aaf-a37554044aa6 +Openstack-Request-Id: req-d8a311bf-dd39-456c-9454-2d305666c864 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}"} -GET: /v1/nodes?sort_key=driver_info {} -GOT:Response: 400 Bad Request +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 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-d08eb7bb-4e21-40e0-8143-ddca9c0cdcad +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-09-20T14:55:47.956564+00:00"} +PATCH: /v1/nodes/28e5243e-7c12-47dd-8f63-60aef2ec2192 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-83c6a372-6f81-4c35-a557-09049bc413b2 +Openstack-Request-Id: req-c14589d5-6b05-42ef-a3ef-507dcb0e74c2 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}"}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 +{"uuid": "28e5243e-7c12-47dd-8f63-60aef2ec2192", "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/28e5243e-7c12-47dd-8f63-60aef2ec2192", "rel": "self"}, {"href": "http://localhost/nodes/28e5243e-7c12-47dd-8f63-60aef2ec2192", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/28e5243e-7c12-47dd-8f63-60aef2ec2192/ports", "rel": "self"}, {"href": "http://localhost/nodes/28e5243e-7c12-47dd-8f63-60aef2ec2192/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/28e5243e-7c12-47dd-8f63-60aef2ec2192/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/28e5243e-7c12-47dd-8f63-60aef2ec2192/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/28e5243e-7c12-47dd-8f63-60aef2ec2192/volume", "rel": "self"}, {"href": "http://localhost/nodes/28e5243e-7c12-47dd-8f63-60aef2ec2192/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/28e5243e-7c12-47dd-8f63-60aef2ec2192/states", "rel": "self"}, {"href": "http://localhost/nodes/28e5243e-7c12-47dd-8f63-60aef2ec2192/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-09-20T14:55:50.830628+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ... 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': {}, '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': '2020-08-18T08:12:13.902292+00:00'} +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-09-20T14:55:41.587092+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': '2020-08-18T08:12:13.902292+00:00'} -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/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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} -GOT:{'ports': [{'uuid': '3449527f-4450-46ab-b053-ff6a181f8899', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/3449527f-4450-46ab-b053-ff6a181f8899', 'rel': 'self'}, {'href': 'http://localhost/ports/3449527f-4450-46ab-b053-ff6a181f8899', 'rel': 'bookmark'}]}, {'uuid': 'bf37d0b8-ca3f-46ae-8b44-8534ca889ab3', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/bf37d0b8-ca3f-46ae-8b44-8534ca889ab3', 'rel': 'self'}, {'href': 'http://localhost/ports/bf37d0b8-ca3f-46ae-8b44-8534ca889ab3', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} -GOT:{'ports': [{'uuid': '3449527f-4450-46ab-b053-ff6a181f8899', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/3449527f-4450-46ab-b053-ff6a181f8899', 'rel': 'self'}, {'href': 'http://localhost/ports/3449527f-4450-46ab-b053-ff6a181f8899', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=1&marker=3449527f-4450-46ab-b053-ff6a181f8899'} +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-09-20T14:55:41.587092+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/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': '2020-08-18T08:12:15.245633+00:00'} -GET: /v1/nodes?sort_key=uuid {} -GOT:{'nodes': [{'uuid': '16837ae6-1c25-463c-a95c-b383805f15ff', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/16837ae6-1c25-463c-a95c-b383805f15ff', 'rel': 'self'}, {'href': 'http://localhost/nodes/16837ae6-1c25-463c-a95c-b383805f15ff', 'rel': 'bookmark'}]}, {'uuid': '5df6650e-5737-4306-84b6-fcc44a525f84', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/5df6650e-5737-4306-84b6-fcc44a525f84', 'rel': 'self'}, {'href': 'http://localhost/nodes/5df6650e-5737-4306-84b6-fcc44a525f84', 'rel': 'bookmark'}]}, {'uuid': 'cd05a4f8-080c-482f-bdda-b7fb6ed112fa', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/cd05a4f8-080c-482f-bdda-b7fb6ed112fa', 'rel': 'self'}, {'href': 'http://localhost/nodes/cd05a4f8-080c-482f-bdda-b7fb6ed112fa', 'rel': 'bookmark'}]}]}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.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.TestListNodes.test_validate_by_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_uuid ... ok - -GET: /v1/nodes/spam/management/boot_device {} -GOT:{'boot_device': 'pxe', 'persistent': True} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} -GOT:Response: 400 Bad Request +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-09-20T14:55:45.804274+00:00'} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7c5eb75e-2165-4c26-80bf-a537fc5d4828 +Openstack-Request-Id: req-d0468c00-ec10-4376-9622-6ee0ab4987c3 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?fields=uuid,instance_info {} -GOT:{'nodes': [{'uuid': 'b8876d25-7810-487e-9cdf-329f9e68735a', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/b8876d25-7810-487e-9cdf-329f9e68735a', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8876d25-7810-487e-9cdf-329f9e68735a', 'rel': 'bookmark'}]}, {'uuid': 'f406c43f-5519-4192-b1f2-675184141b82', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/f406c43f-5519-4192-b1f2-675184141b82', 'rel': 'self'}, {'href': 'http://localhost/nodes/f406c43f-5519-4192-b1f2-675184141b82', 'rel': 'bookmark'}]}, {'uuid': '01111040-524b-4fbe-aa1c-a15a4d638133', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/01111040-524b-4fbe-aa1c-a15a4d638133', 'rel': 'self'}, {'href': 'http://localhost/nodes/01111040-524b-4fbe-aa1c-a15a4d638133', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?driver=test {} -GOT:{'nodes': []} -GET: /v1/nodes/detail?resource_class=test {} -GOT:{'nodes': []} -GET: /v1/nodes?traits=CUSTOM_TRAIT_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-09-20T14:55:47.510368+00:00"} +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-c1016ec2-a2e1-44e6-9072-8f4c89755ac9 +Openstack-Request-Id: req-f0419eef-e033-4cf7-a4ac-c4c6271d03ab 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/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': '2020-08-18T08:12:14.251147+00:00'} -GET: /v1/nodes?maintenance=true {} -GOT:{'nodes': [{'uuid': '11b3f0fd-ebac-41c8-989f-7ef55f42e07c', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/11b3f0fd-ebac-41c8-989f-7ef55f42e07c', 'rel': 'self'}, {'href': 'http://localhost/nodes/11b3f0fd-ebac-41c8-989f-7ef55f42e07c', 'rel': 'bookmark'}]}, {'uuid': 'cb4bade3-f03f-478d-b84d-8743a0212bd0', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': True, 'links': [{'href': 'http://localhost/v1/nodes/cb4bade3-f03f-478d-b84d-8743a0212bd0', 'rel': 'self'}, {'href': 'http://localhost/nodes/cb4bade3-f03f-478d-b84d-8743a0212bd0', 'rel': 'bookmark'}]}]} -GET: /v1/nodes?maintenance=false {} -GOT:{'nodes': [{'uuid': 'b40c94bd-dbdc-4aa3-8cd1-e5ff1bc2fa52', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/b40c94bd-dbdc-4aa3-8cd1-e5ff1bc2fa52', 'rel': 'self'}, {'href': 'http://localhost/nodes/b40c94bd-dbdc-4aa3-8cd1-e5ff1bc2fa52', 'rel': 'bookmark'}]}, {'uuid': '30f45e92-f6be-4675-94fd-e3ee895ae75a', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/30f45e92-f6be-4675-94fd-e3ee895ae75a', 'rel': 'self'}, {'href': 'http://localhost/nodes/30f45e92-f6be-4675-94fd-e3ee895ae75a', 'rel': 'bookmark'}]}, {'uuid': 'c8f70b81-54c3-454f-865f-41794f93ae82', 'instance_uuid': None, 'power_state': None, 'provision_state': None, 'maintenance': False, 'links': [{'href': 'http://localhost/v1/nodes/c8f70b81-54c3-454f-865f-41794f93ae82', 'rel': 'self'}, {'href': 'http://localhost/nodes/c8f70b81-54c3-454f-865f-41794f93ae82', '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': '2020-08-18T08:12:15.364958+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': '2020-08-18T08:12:15.364958+00:00'}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_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_noid -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_validate_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_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_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.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.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.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.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_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.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_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_update_storage_interface_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_storage_interface_old_api ... ok -ironic.tests.unit.api.controllers.v1.test_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.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_deployfail ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_invalid +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}"}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_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_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.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_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_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_patch_add_name_reserved +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class_too_long ... 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: 406 Not Acceptable +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-7f81dd99-88d4-4485-83d1-298b8924c43e +Openstack-Request-Id: req-56189616-0f5c-48c1-a441-5a5d03a31eb3 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/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'} +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-09-20T14:55:43.077238+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-628e5921-e303-45b8-8e3f-be1dc58aad74 +Openstack-Request-Id: req-22628ada-edcf-4e14-b18f-e5c16a4f8d52 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}"} -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 +{"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?reset_interfaces=True [{'path': '/name', 'value': 'new name', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-1a14a30d-580c-4730-bab6-6bca4e8df5ef +Openstack-Request-Id: req-9d44783c-3451-4bcd-be28-11ba2af8beef 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": "2020-08-18T08:12:16.193835+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': '2020-08-18T08:12:16.193835+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': {'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 +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/2b2e26e8-f2eb-4517-96eb-4f1d7fc2627b [{'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-802d7947-f968-418c-b74e-1068de5ca478 +Openstack-Request-Id: req-dc25280c-da21-4032-a191-5198ff937cca 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": "2020-08-18T08:12:16.660074+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': '2020-08-18T08:12:16.660074+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_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_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.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_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_name_remove_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok ... ok - -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'add'}] +{"uuid": "2b2e26e8-f2eb-4517-96eb-4f1d7fc2627b", "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/2b2e26e8-f2eb-4517-96eb-4f1d7fc2627b", "rel": "self"}, {"href": "http://localhost/nodes/2b2e26e8-f2eb-4517-96eb-4f1d7fc2627b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2b2e26e8-f2eb-4517-96eb-4f1d7fc2627b/ports", "rel": "self"}, {"href": "http://localhost/nodes/2b2e26e8-f2eb-4517-96eb-4f1d7fc2627b/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:48.899945+00:00"} +PATCH: /v1/nodes/5cb6ec40-3fed-4ab4-b545-c64fb316cb0b [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4ada09c7-db71-4d91-a387-3009c003fe37 +Openstack-Request-Id: req-b8146c41-9344-4b5a-a5c5-b1ce14d972bd 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": "2020-08-18T08:12:13.953396+00:00"} -PATCH: /v1/nodes/b9fb7990-38e0-4d6c-8217-011b8bb2e1a2 [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] -GOT:Response: 400 Bad Request +{"uuid": "5cb6ec40-3fed-4ab4-b545-c64fb316cb0b", "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/5cb6ec40-3fed-4ab4-b545-c64fb316cb0b", "rel": "self"}, {"href": "http://localhost/nodes/5cb6ec40-3fed-4ab4-b545-c64fb316cb0b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5cb6ec40-3fed-4ab4-b545-c64fb316cb0b/ports", "rel": "self"}, {"href": "http://localhost/nodes/5cb6ec40-3fed-4ab4-b545-c64fb316cb0b/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:50.328381+00:00"} +PATCH: /v1/nodes/0127bbad-1380-4e6c-a123-c82efb752dbf [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b387cdbf-ffce-4240-9aaf-9184d4e69180 +Openstack-Request-Id: req-9c726c1a-1eba-48c1-9348-98180a1b6419 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 +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "0127bbad-1380-4e6c-a123-c82efb752dbf", "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/0127bbad-1380-4e6c-a123-c82efb752dbf", "rel": "self"}, {"href": "http://localhost/nodes/0127bbad-1380-4e6c-a123-c82efb752dbf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/0127bbad-1380-4e6c-a123-c82efb752dbf/ports", "rel": "self"}, {"href": "http://localhost/nodes/0127bbad-1380-4e6c-a123-c82efb752dbf/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:51.573971+00:00"} +PATCH: /v1/nodes/8b0abe1f-c58d-4efe-8a12-f3a30f0614eb [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b8ef665e-eff2-4425-85e4-9d065999aa55 +Openstack-Request-Id: req-b391099e-4493-4ab8-96a9-725cb74ee829 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 [{'path': '/driver', 'value': 'foo', 'op': 'add'}] -GOT:Response: 409 Conflict +{"uuid": "8b0abe1f-c58d-4efe-8a12-f3a30f0614eb", "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/8b0abe1f-c58d-4efe-8a12-f3a30f0614eb", "rel": "self"}, {"href": "http://localhost/nodes/8b0abe1f-c58d-4efe-8a12-f3a30f0614eb", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8b0abe1f-c58d-4efe-8a12-f3a30f0614eb/ports", "rel": "self"}, {"href": "http://localhost/nodes/8b0abe1f-c58d-4efe-8a12-f3a30f0614eb/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:52.800752+00:00"}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_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, '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-09-20T14:55:45.903851+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-09-20T14:55:45.903851+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-09-20T14:55:48.399406+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-09-20T14:55:48.399406+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'} +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-09-20T14:55:53.023082+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 + +PATCH: /v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc [{'path': '/raid_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-2555a896-fc26-4011-97e0-44212cfe0cc4 +Openstack-Request-Id: req-2eddeadb-891b-4280-a5fc-b8b6e70ed058 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': '/name', 'op': 'add', 'value': 'Windows ME'}, {'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "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/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/states", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/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-09-20T14:55:38.275751+00:00"} +PATCH: /v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc [{'path': '/vendor_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6fb5b641-0789-4741-8643-7c1d01138496 +Openstack-Request-Id: req-6b877e2d-abed-4802-b8a4-f9e4e4edcd54 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/non-existent', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "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/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/states", "rel": "self"}, {"href": "http://localhost/nodes/05d8b31d-06c1-4716-86a2-b1cd8fc4d1cc/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-09-20T14:55:38.275751+00:00"} +PATCH: /v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f2ed7ab0-2679-44cc-be40-7dc642ab0386 +Openstack-Request-Id: req-521d5b99-e603-4f02-8a5a-0c9d9ce142b6 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 [{'path': '/chassis_id', 'value': '1', 'op': 'replace'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "d0fdc750-fc39-4915-99b6-9981650c0b82", "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/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/states", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/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-09-20T14:55:46.412921+00:00"} +PATCH: /v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-d97ff2df-f76b-41ab-b001-3199fa7296f0 +Openstack-Request-Id: req-65f3e31a-d68e-4d2a-8cb0-8e62931015ff 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/8370312f-e216-4947-93a0-4cd39aa417c6 [{'path': '/storage_interface', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "d0fdc750-fc39-4915-99b6-9981650c0b82", "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/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/states", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/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-09-20T14:55:46.412921+00:00"} +PATCH: /v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5b3f99f6-7c15-4f9f-b5b5-f12add427182 +Openstack-Request-Id: req-ba067e69-61fe-4da9-84b2-37d98d6d5f29 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "8370312f-e216-4947-93a0-4cd39aa417c6", "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/8370312f-e216-4947-93a0-4cd39aa417c6", "rel": "self"}, {"href": "http://localhost/nodes/8370312f-e216-4947-93a0-4cd39aa417c6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8370312f-e216-4947-93a0-4cd39aa417c6/ports", "rel": "self"}, {"href": "http://localhost/nodes/8370312f-e216-4947-93a0-4cd39aa417c6/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8370312f-e216-4947-93a0-4cd39aa417c6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8370312f-e216-4947-93a0-4cd39aa417c6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8370312f-e216-4947-93a0-4cd39aa417c6/volume", "rel": "self"}, {"href": "http://localhost/nodes/8370312f-e216-4947-93a0-4cd39aa417c6/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8370312f-e216-4947-93a0-4cd39aa417c6/states", "rel": "self"}, {"href": "http://localhost/nodes/8370312f-e216-4947-93a0-4cd39aa417c6/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": "2020-08-18T08:12:16.128627+00:00"} -PATCH: /v1/nodes/9f5592bd-50b9-467a-b4f1-c240a9741476 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"uuid": "d0fdc750-fc39-4915-99b6-9981650c0b82", "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/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/states", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/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-09-20T14:55:46.412921+00:00"} +PATCH: /v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c743e4d9-f8a1-48c2-8ff2-a5ca33c2af53 +Openstack-Request-Id: req-1a431e29-4df6-411e-b587-39a4b7dfa012 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "9f5592bd-50b9-467a-b4f1-c240a9741476", "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/9f5592bd-50b9-467a-b4f1-c240a9741476", "rel": "self"}, {"href": "http://localhost/nodes/9f5592bd-50b9-467a-b4f1-c240a9741476", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9f5592bd-50b9-467a-b4f1-c240a9741476/ports", "rel": "self"}, {"href": "http://localhost/nodes/9f5592bd-50b9-467a-b4f1-c240a9741476/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:16.533413+00:00"}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_abort_cleanwait -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait ... ok - -GET: /v1/nodes?instance_uuid=fake {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "d0fdc750-fc39-4915-99b6-9981650c0b82", "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/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/states", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/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-09-20T14:55:46.412921+00:00"} +PATCH: /v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-7094a24b-2762-45d4-b46e-fa8608202a3a +Openstack-Request-Id: req-bf8ea422-7d29-4c43-b274-d13631f24277 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/validate?node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{} -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.46 +{"uuid": "d0fdc750-fc39-4915-99b6-9981650c0b82", "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/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/states", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/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-09-20T14:55:46.412921+00:00"} +PATCH: /v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82 [{'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.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_reset_storage_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_reset_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one +ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ... ok + +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8de1fb9c-978b-4a5f-a5d9-39785042fa14 +Openstack-Request-Id: req-1de40fc8-7a53-494d-a5b2-6f8989f9ae24 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 [{'path': '/provision_updated_at', 'op': 'replace', 'value': '2000-01-01 00:00:00'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "d0fdc750-fc39-4915-99b6-9981650c0b82", "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/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/states", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/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-09-20T14:55:46.412921+00:00"} +PATCH: /v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-75b5a91e-df48-4da9-b162-330cc45d38d3 +Openstack-Request-Id: req-ce50b574-abeb-4eb0-82a6-f2a1486ba58c 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/2d280120-fa74-480d-92da-4f177b6de027 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "d0fdc750-fc39-4915-99b6-9981650c0b82", "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/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/states", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/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-09-20T14:55:46.412921+00:00"} +PATCH: /v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-0934ca0a-3410-49d9-a1d2-b1f601cbf873 +Openstack-Request-Id: req-3fe89241-15d0-4c81-b7a3-a625d94e589d 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/a3ea91e7-1e08-406b-840c-5fbbaefdf677 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "d0fdc750-fc39-4915-99b6-9981650c0b82", "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/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/states", "rel": "self"}, {"href": "http://localhost/nodes/d0fdc750-fc39-4915-99b6-9981650c0b82/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-09-20T14:55:46.412921+00:00"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'power_state': 'new state'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-dc79775f-41c7-48f0-9795-12e52310aa8a +Openstack-Request-Id: req-4e57c4d5-3d3b-4704-bddf-a91b6735126d 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/a3ea91e7-1e08-406b-840c-5fbbaefdf677 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-79f65a2d-0695-49f3-9f5c-66d61e4d9900 -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/a3ea91e7-1e08-406b-840c-5fbbaefdf677 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-38976d1c-dbd5-48fc-9d95-b0c1cfc5caef -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/a3ea91e7-1e08-406b-840c-5fbbaefdf677 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-587b8864-00ce-4db9-980d-250bb335052e -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/a3ea91e7-1e08-406b-840c-5fbbaefdf677 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-3c9e3890-9ad3-4374-a671-c6d31a1d556c -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/a3ea91e7-1e08-406b-840c-5fbbaefdf677 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-611521a8-2c88-4897-b0f3-052f852c30d6 -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/a3ea91e7-1e08-406b-840c-5fbbaefdf677 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-4bc30a7d-3b13-4062-ab3b-cf4cad37d464 -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/a3ea91e7-1e08-406b-840c-5fbbaefdf677 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-64a6131b-0a3a-4a08-b116-6269a208e53a -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/d3649406-ccc4-47f6-b187-886ac4348a4f [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-1419567b-ee51-463c-becb-ba400acb6a6a -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 -Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-432ab7e4-28d0-49e9-8d94-51913708b3ad -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": "2020-08-18T08:12:16.983826+00:00"}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.TestPatch.test_patch_add_name_reserved -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_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_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_ports_subresource -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_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_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_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.TestPatch.test_replace_maintenance -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_ok ... ok +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown attribute for argument patch: power_state\", \"debuginfo\": null}"}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.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_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_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.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.TestPatch.test_update_fails_bad_driver +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver ... ok -PATCH: /v1/nodes/37e85a97-e53d-4231-9e71-b25e84babd45 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +PATCH: /v1/nodes/1057d781-94df-4b0a-89dd-192ff0c60601 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-dbffe9e4-1d7d-4618-920a-723aae358c72 +Openstack-Request-Id: req-33eb8a23-b985-4a0d-977b-d33e42dbda08 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "37e85a97-e53d-4231-9e71-b25e84babd45", "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/37e85a97-e53d-4231-9e71-b25e84babd45", "rel": "self"}, {"href": "http://localhost/nodes/37e85a97-e53d-4231-9e71-b25e84babd45", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/37e85a97-e53d-4231-9e71-b25e84babd45/ports", "rel": "self"}, {"href": "http://localhost/nodes/37e85a97-e53d-4231-9e71-b25e84babd45/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:16.815052+00:00"} -PATCH: /v1/nodes/bc028a4f-11f6-4186-83c5-6fd6473a1401 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"uuid": "1057d781-94df-4b0a-89dd-192ff0c60601", "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/1057d781-94df-4b0a-89dd-192ff0c60601", "rel": "self"}, {"href": "http://localhost/nodes/1057d781-94df-4b0a-89dd-192ff0c60601", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1057d781-94df-4b0a-89dd-192ff0c60601/ports", "rel": "self"}, {"href": "http://localhost/nodes/1057d781-94df-4b0a-89dd-192ff0c60601/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:54.110232+00:00"} +PATCH: /v1/nodes/a07b7162-18d2-4d54-9e89-803f00de6b5a [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-4ffa3b78-4454-44ad-98d4-6ec495d24b5e +Openstack-Request-Id: req-24eef787-6dff-4ea1-ac50-f4494b3d41f5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "bc028a4f-11f6-4186-83c5-6fd6473a1401", "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/bc028a4f-11f6-4186-83c5-6fd6473a1401", "rel": "self"}, {"href": "http://localhost/nodes/bc028a4f-11f6-4186-83c5-6fd6473a1401", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/bc028a4f-11f6-4186-83c5-6fd6473a1401/ports", "rel": "self"}, {"href": "http://localhost/nodes/bc028a4f-11f6-4186-83c5-6fd6473a1401/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:17.054824+00:00"} -PATCH: /v1/nodes/f4e71ff4-524e-4d4d-bec3-18bfd028f0c2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"uuid": "a07b7162-18d2-4d54-9e89-803f00de6b5a", "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/a07b7162-18d2-4d54-9e89-803f00de6b5a", "rel": "self"}, {"href": "http://localhost/nodes/a07b7162-18d2-4d54-9e89-803f00de6b5a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a07b7162-18d2-4d54-9e89-803f00de6b5a/ports", "rel": "self"}, {"href": "http://localhost/nodes/a07b7162-18d2-4d54-9e89-803f00de6b5a/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:55.056180+00:00"} +PATCH: /v1/nodes/81db73cd-eda1-4870-9017-666cff4f8eef [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b41499ae-9b1e-4a4f-a994-348c20f22794 +Openstack-Request-Id: req-a3f9e101-b811-40c3-88df-38e5fc5c191d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "f4e71ff4-524e-4d4d-bec3-18bfd028f0c2", "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/f4e71ff4-524e-4d4d-bec3-18bfd028f0c2", "rel": "self"}, {"href": "http://localhost/nodes/f4e71ff4-524e-4d4d-bec3-18bfd028f0c2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f4e71ff4-524e-4d4d-bec3-18bfd028f0c2/ports", "rel": "self"}, {"href": "http://localhost/nodes/f4e71ff4-524e-4d4d-bec3-18bfd028f0c2/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:17.182765+00:00"} -PATCH: /v1/nodes/f9313d1f-2326-4069-a981-5b3d086f36d4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"uuid": "81db73cd-eda1-4870-9017-666cff4f8eef", "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/81db73cd-eda1-4870-9017-666cff4f8eef", "rel": "self"}, {"href": "http://localhost/nodes/81db73cd-eda1-4870-9017-666cff4f8eef", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/81db73cd-eda1-4870-9017-666cff4f8eef/ports", "rel": "self"}, {"href": "http://localhost/nodes/81db73cd-eda1-4870-9017-666cff4f8eef/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:56.247023+00:00"} +PATCH: /v1/nodes/a228656e-1cce-41d7-ba3e-592d6eec2508 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-992fc08b-2e60-4e1d-8987-65f53bf5d62c +Openstack-Request-Id: req-8fd6701b-4d61-4a45-b06c-3af45fbe1cfe X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "f9313d1f-2326-4069-a981-5b3d086f36d4", "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/f9313d1f-2326-4069-a981-5b3d086f36d4", "rel": "self"}, {"href": "http://localhost/nodes/f9313d1f-2326-4069-a981-5b3d086f36d4", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f9313d1f-2326-4069-a981-5b3d086f36d4/ports", "rel": "self"}, {"href": "http://localhost/nodes/f9313d1f-2326-4069-a981-5b3d086f36d4/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:17.361010+00:00"} -PATCH: /v1/nodes/31a06ed3-b4eb-415f-9915-9d87e93372ba [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"uuid": "a228656e-1cce-41d7-ba3e-592d6eec2508", "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/a228656e-1cce-41d7-ba3e-592d6eec2508", "rel": "self"}, {"href": "http://localhost/nodes/a228656e-1cce-41d7-ba3e-592d6eec2508", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/a228656e-1cce-41d7-ba3e-592d6eec2508/ports", "rel": "self"}, {"href": "http://localhost/nodes/a228656e-1cce-41d7-ba3e-592d6eec2508/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:57.356505+00:00"} +PATCH: /v1/nodes/cd6d0ad7-089e-4d1f-afd5-636f4c5c5402 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-aae608c2-3662-4dc1-b16f-090ba1f6033a +Openstack-Request-Id: req-579b041f-c2ee-498f-8c39-fe989b609360 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "31a06ed3-b4eb-415f-9915-9d87e93372ba", "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/31a06ed3-b4eb-415f-9915-9d87e93372ba", "rel": "self"}, {"href": "http://localhost/nodes/31a06ed3-b4eb-415f-9915-9d87e93372ba", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/31a06ed3-b4eb-415f-9915-9d87e93372ba/ports", "rel": "self"}, {"href": "http://localhost/nodes/31a06ed3-b4eb-415f-9915-9d87e93372ba/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:17.511553+00:00"} -PATCH: /v1/nodes/c380bdfa-b927-44c7-a0ce-bb30ba7afcd5 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"uuid": "cd6d0ad7-089e-4d1f-afd5-636f4c5c5402", "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/cd6d0ad7-089e-4d1f-afd5-636f4c5c5402", "rel": "self"}, {"href": "http://localhost/nodes/cd6d0ad7-089e-4d1f-afd5-636f4c5c5402", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/cd6d0ad7-089e-4d1f-afd5-636f4c5c5402/ports", "rel": "self"}, {"href": "http://localhost/nodes/cd6d0ad7-089e-4d1f-afd5-636f4c5c5402/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:58.421391+00:00"} +PATCH: /v1/nodes/067a863b-4924-4de3-b60c-11505d6febf8 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-9fe1b5a4-eff2-4fbf-92cd-4e87d1b977cb +Openstack-Request-Id: req-b536ab05-4767-4647-9136-5aa089695c53 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "c380bdfa-b927-44c7-a0ce-bb30ba7afcd5", "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/c380bdfa-b927-44c7-a0ce-bb30ba7afcd5", "rel": "self"}, {"href": "http://localhost/nodes/c380bdfa-b927-44c7-a0ce-bb30ba7afcd5", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c380bdfa-b927-44c7-a0ce-bb30ba7afcd5/ports", "rel": "self"}, {"href": "http://localhost/nodes/c380bdfa-b927-44c7-a0ce-bb30ba7afcd5/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:17.666388+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_in_UPDATE_ALLOWED_STATES +{"uuid": "067a863b-4924-4de3-b60c-11505d6febf8", "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/067a863b-4924-4de3-b60c-11505d6febf8", "rel": "self"}, {"href": "http://localhost/nodes/067a863b-4924-4de3-b60c-11505d6febf8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/067a863b-4924-4de3-b60c-11505d6febf8/ports", "rel": "self"}, {"href": "http://localhost/nodes/067a863b-4924-4de3-b60c-11505d6febf8/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:55:59.435879+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_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_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.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.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_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.TestPatch.test_update_fails_bad_driver_info +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_fails_bad_driver_info ... ok GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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': '2020-08-18T08:12:16.983826+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-f74b91c0-ac60-4c84-b260-efe65cef635d -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'} -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-85d39ebb-89bf-4189-a282-e4732a4b2549 -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': {}, 'chassis_uuid': 0} -GOT:Response: 400 Bad Request +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-09-20T14:55:38.927847+00:00'} +GET: /v1/nodes/validate?node=spam {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-ebcdbc08-8d60-4a48-ba9f-84a5e3f7eb7f +Openstack-Request-Id: req-1f150d66-9903-44ed-8d1c-7f07b5598b3f 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}"}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_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.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_specify_conductor_group -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_already_in_progress -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_already_in_progress ... ok - -GET: /v1/nodes?sort_key=extra {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +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'}]} +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-8240d26b-2628-4d1c-a394-a9b677ddf540 +Openstack-Request-Id: req-a5b3f4ac-ae0b-4678-8cf7-54c4220b2817 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 {} +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-09-20T14:55:43.686778+00:00"} +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-9d2e9d72-bb78-42e7-b02a-8fb4e9817077 +Openstack-Request-Id: req-9bb58fb1-392d-4334-8547-ab734deaa06b 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 {} -GOT:Response: 400 Bad Request +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/a2415a69-ecb4-4f93-bb7e-3285c27d890e [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-f19081a7-8cbe-460d-b27d-c587485fa8ed +Openstack-Request-Id: req-78ae1ad9-8a67-4f7a-8acd-434b98e78917 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 {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.5 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"this-is-my-node\", \"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-91b6441e-81e4-4e0b-ba64-5e6ba6eb28c3 +Openstack-Request-Id: req-fc96ff0b-490c-4ba0-ab62-b1edffb348cb 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 {} -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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-912ff554-d3b3-4ef0-955f-f19d9ffa1c54 +Openstack-Request-Id: req-3e820593-0fd9-4c6e-8579-24b0cb2736c2 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}"} -GET: /v1/nodes/validate?node=spam {} -GOT:{} -GET: /v1/nodes/volume/connectors {} -GOT:Response: 404 Not Found +{"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-e46bcde8-b988-44c3-b2f6-3bd2c534b18f +Openstack-Request-Id: req-95067347-4697-460e-b3d1-9e0b5012825e 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': '/foo', 'value': 'bar', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7ca54659-1fb1-46ee-be2f-9962b8760d98 +Openstack-Request-Id: req-78df251b-70df-4617-85fb-96df7680c19f 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/name', 'op': 'replace', 'value': 'Guido Van Error'}] +{"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/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-2e80b21b-acca-4ce8-a89b-17b81c79ae02 +Openstack-Request-Id: req-4551cae6-221f-4b4c-80ba-50c9f37b2d1f 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 [{'path': '/name', 'op': 'remove'}] +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/node-57.1 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-394a1bdc-ec7e-499c-b568-8ca1c47f4945 +Openstack-Request-Id: req-37b642b0-0a60-4493-8d2a-db7bed27c35f 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": "2020-08-18T08:12:17.261202+00:00"} +{"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-09-20T14:55:59.676308+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_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.TestPost.test_create_node_specify_conductor_group +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_by_name_unsupported +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_by_name_unsupported ... ok +ironic.tests.unit.api.controllers.v1.test_node.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, '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-09-20T14:55:53.023082+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-09-20T14:55:55.778346+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-09-20T14:55:55.778346+00:00'} +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/portgroups {} +GOT:{'portgroups': [{'uuid': 'a74c4d2a-d09b-4082-ab5e-05b8809ff8c2', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/a74c4d2a-d09b-4082-ab5e-05b8809ff8c2', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a74c4d2a-d09b-4082-ab5e-05b8809ff8c2', 'rel': 'bookmark'}]}, {'uuid': '774e8e83-f7e6-4711-86ec-6b4988d82e65', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/774e8e83-f7e6-4711-86ec-6b4988d82e65', 'rel': 'self'}, {'href': 'http://localhost/portgroups/774e8e83-f7e6-4711-86ec-6b4988d82e65', 'rel': 'bookmark'}]}]} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} +GOT:{'portgroups': [{'uuid': 'a74c4d2a-d09b-4082-ab5e-05b8809ff8c2', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/a74c4d2a-d09b-4082-ab5e-05b8809ff8c2', 'rel': 'self'}, {'href': 'http://localhost/portgroups/a74c4d2a-d09b-4082-ab5e-05b8809ff8c2', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=1&marker=a74c4d2a-d09b-4082-ab5e-05b8809ff8c2'}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 + 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-f72c0e90-b036-44ae-84a3-1765019b1df6 +Openstack-Request-Id: req-f6ba5e5f-1577-43c2-ae46-494e50639011 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/last_error', 'op': 'remove'}] +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-4f3a4125-440f-4d1b-ae5b-021c924bcd5e +Openstack-Request-Id: req-669f8260-7e46-4158-9775-846ab122ee64 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}"} +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': '/chassis_uuid', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-693d218a-1183-4f29-9e57-4e79ae2202c5 +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": "2021-09-20T14:55:46.096493+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-69ab366e-561d-484d-b31c-43dcd3c6a04a +Openstack-Request-Id: req-a9ce939a-5b74-404d-b54f-6e73a5926995 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}"} -PATCH: /v1/nodes/d6847295-6ef4-4f56-8735-09cd7178ca9d [{'path': '/instance_uuid', 'op': 'remove'}] -GOT:Response: 200 OK +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-89d8b013-d90e-49e9-82f1-a328fba22967 +Openstack-Request-Id: req-4460f63d-9d57-4aad-b4dc-46ef1c2e0cfe X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "d6847295-6ef4-4f56-8735-09cd7178ca9d", "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/d6847295-6ef4-4f56-8735-09cd7178ca9d", "rel": "self"}, {"href": "http://localhost/nodes/d6847295-6ef4-4f56-8735-09cd7178ca9d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d6847295-6ef4-4f56-8735-09cd7178ca9d/ports", "rel": "self"}, {"href": "http://localhost/nodes/d6847295-6ef4-4f56-8735-09cd7178ca9d/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:18.515486+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_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_invalid_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface ... ok - -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 +{"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': '/chassis_uuid', 'value': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-5e8d15c5-2e98-4b1c-ac8e-58973f120c32 +Openstack-Request-Id: req-03783420-da13-45ae-813e-509e37e14c0e 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": "2020-08-18T08:12:15.406427+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': '2020-08-18T08:12:15.406427+00:00'} -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 "} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {} -GOT:foo -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} -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-09-20T14:55:52.092336+00:00"} +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-541245ce-facc-4ee3-b089-16488bdee58f -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/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-86f30566-d382-4fbe-bf52-9aeb46cc7d73 +Openstack-Request-Id: req-a47246c5-c4e1-469d-a870-197ef015fec3 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/power {'target': 'power on'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-2e13a5c0-90c5-44f2-bf59-ac7aa753c161 +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-09-20T14:55:55.060914+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-6f441ff6-fadb-432f-ab43-58b007ae3cd9 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: 400 Bad Request +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/0612cb4b-d6a2-452c-924f-ff29fcd17c00 [{'path': '/instance_uuid', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-07887207-e8f0-4351-ab42-ad9b62150915 +Openstack-Request-Id: req-64bed238-f94d-4f63-b230-b0c9b48536a9 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': 2} +X-Openstack-Ironic-Api-Version: 1.38 +{"uuid": "0612cb4b-d6a2-452c-924f-ff29fcd17c00", "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/0612cb4b-d6a2-452c-924f-ff29fcd17c00", "rel": "self"}, {"href": "http://localhost/nodes/0612cb4b-d6a2-452c-924f-ff29fcd17c00", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/0612cb4b-d6a2-452c-924f-ff29fcd17c00/ports", "rel": "self"}, {"href": "http://localhost/nodes/0612cb4b-d6a2-452c-924f-ff29fcd17c00/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0612cb4b-d6a2-452c-924f-ff29fcd17c00/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0612cb4b-d6a2-452c-924f-ff29fcd17c00/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0612cb4b-d6a2-452c-924f-ff29fcd17c00/volume", "rel": "self"}, {"href": "http://localhost/nodes/0612cb4b-d6a2-452c-924f-ff29fcd17c00/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0612cb4b-d6a2-452c-924f-ff29fcd17c00/states", "rel": "self"}, {"href": "http://localhost/nodes/0612cb4b-d6a2-452c-924f-ff29fcd17c00/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-09-20T14:55:59.584866+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.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_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_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_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.TestPatch.test_update_ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ... ok + +PATCH: /v1/nodes/ceebdb94-bf6a-4750-bb8b-df54c63a8fed [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-64dbf0b7-a853-453a-a9bb-82358e1782f4 +Openstack-Request-Id: req-50664469-bb5d-4897-ba0a-5c03d7c386ee 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.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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-d3b522c6-1ad5-44bf-a705-6adc10522687 +PATCH: /v1/nodes/b0d2695f-4e65-4aa5-b15b-ab13b79822f9 [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-ad82943d-332b-489b-a911-95b3698ee47d 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': 'rescue', 'rescue_password': 'password'} -GOT:Response: 409 Conflict +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': None} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-94ce8e06-09eb-479a-a36f-b5520feb023b +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-798014a7-068d-4724-9c3c-a9b214ae539b 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: 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": "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': 'cff08002-9a5f-4980-8377-ad8218c83794', '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-892b20d3-fa00-4edb-b004-9ccd76a2268f +Location: http://localhost/v1/nodes/cff08002-9a5f-4980-8377-ad8218c83794 +Openstack-Request-Id: req-f9ee4042-c7a7-4454-b0e1-4006adb41b6f 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: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.1 +{"uuid": "cff08002-9a5f-4980-8377-ad8218c83794", "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/cff08002-9a5f-4980-8377-ad8218c83794", "rel": "self"}, {"href": "http://localhost/nodes/cff08002-9a5f-4980-8377-ad8218c83794", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/cff08002-9a5f-4980-8377-ad8218c83794/ports", "rel": "self"}, {"href": "http://localhost/nodes/cff08002-9a5f-4980-8377-ad8218c83794/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} +GET: /v1/nodes/cff08002-9a5f-4980-8377-ad8218c83794 {} +GOT:{'uuid': 'cff08002-9a5f-4980-8377-ad8218c83794', '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/cff08002-9a5f-4980-8377-ad8218c83794', 'rel': 'self'}, {'href': 'http://localhost/nodes/cff08002-9a5f-4980-8377-ad8218c83794', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/cff08002-9a5f-4980-8377-ad8218c83794/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/cff08002-9a5f-4980-8377-ad8218c83794/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': {'foo': 123}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-76cd9073-4d93-43b5-8213-045039d54b8f +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-0dddb0d9-7817-40b9-b327-f049c2951deb 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: 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": {"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-09-20T14:56:02.096327+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ... ok +ironic.tests.unit.api.controllers.v1.test_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 + +PATCH: /v1/nodes/4e064251-45cd-417b-8792-d869c1e95fac [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-fe826bae-e5ee-4c80-8720-362411eeccf0 +Openstack-Request-Id: req-46363332-df68-4354-9012-4263616697ed 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_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_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_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_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_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.TestPost.test_create_node_invalid_storage_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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.TestPost.test_create_node_name_empty_invalid -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_name_empty_invalid ... ok - -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} -GOT:{'connectors': [{'uuid': 'e89c838f-0b8b-475e-9f4d-b61a6feccac6', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/e89c838f-0b8b-475e-9f4d-b61a6feccac6', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e89c838f-0b8b-475e-9f4d-b61a6feccac6', 'rel': 'bookmark'}]}, {'uuid': '5435ee94-2a9d-4e73-85e3-e5239724be84', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/5435ee94-2a9d-4e73-85e3-e5239724be84', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5435ee94-2a9d-4e73-85e3-e5239724be84', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} -GOT:{'connectors': [{'uuid': 'e89c838f-0b8b-475e-9f4d-b61a6feccac6', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/e89c838f-0b8b-475e-9f4d-b61a6feccac6', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e89c838f-0b8b-475e-9f4d-b61a6feccac6', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=1&marker=e89c838f-0b8b-475e-9f4d-b61a6feccac6'} -PATCH: /v1/nodes/5f0ec763-aef7-4e47-83b7-ca36b46db6e9 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 409 Conflict +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': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d0c7d538-2184-469c-afa7-806656c51edb +Openstack-Request-Id: req-d5b09e9a-4d8e-4911-bf1b-00848a1f874a 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 5f0ec763-aef7-4e47-83b7-ca36b46db6e9 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} -PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'i am invalid'}] +{"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': {}, 'bios_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-40eed87d-817b-4e51-b71d-a1e073c27b5c +Openstack-Request-Id: req-7eeb1bea-b3a7-42cc-9499-26ff0651db56 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}"} +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': '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 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-6da93c50-fbd5-4028-8527-016e14c19159 +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": "2021-09-20T14:56:02.124925+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-09-20T14:56:02.124925+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'}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_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.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.TestPatch.test_patch_deploy_step_forbidden +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_deploy_step_forbidden ... ok + 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-e06bfc33-7a70-4452-ad14-25f045e62e4a +Openstack-Request-Id: req-fe185bcd-1afb-4c6b-93ea-7aa83915c1be X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 @@ -6943,7 +7022,7 @@ 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-bb382ae5-5479-4a9b-8719-7c8cb68894f8 +Openstack-Request-Id: req-2dd384a7-c2d3-4594-a939-5eb8df4e03e6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 @@ -6951,7 +7030,7 @@ 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-1d32a72c-ae48-4aa9-9279-cb2ffc1649ab +Openstack-Request-Id: req-26e05eae-d96f-478c-bf60-ace9c474d757 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 @@ -6959,7 +7038,7 @@ 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-513ddfb2-687b-460e-8e77-42cbe7ce476d +Openstack-Request-Id: req-805b6a70-cd12-4389-b8f9-9f8bef87b9e2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 @@ -6967,7 +7046,7 @@ 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-be1041bc-9efd-4775-aa69-29f56ebf7267 +Openstack-Request-Id: req-3ac64e02-23f7-4db1-8991-0d93b086f867 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 @@ -6975,1408 +7054,1267 @@ 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-192df273-1cd4-48e1-897a-44e9cd0ef39a +Openstack-Request-Id: req-88b9813a-217a-4a47-8e9f-4ef8cf8f4928 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/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 403 Forbidden +PATCH: /v1/nodes/f5781274-bc92-458d-8c14-8fb68112fa3e [{'path': '/storage_interface', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-756a506f-a186-4e6f-916f-cb5afe35ca62 +Openstack-Request-Id: req-7950d45d-d231-4c9f-b86b-e4c23700c979 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', 'op': 'remove'}] +{"uuid": "f5781274-bc92-458d-8c14-8fb68112fa3e", "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/f5781274-bc92-458d-8c14-8fb68112fa3e", "rel": "self"}, {"href": "http://localhost/nodes/f5781274-bc92-458d-8c14-8fb68112fa3e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f5781274-bc92-458d-8c14-8fb68112fa3e/ports", "rel": "self"}, {"href": "http://localhost/nodes/f5781274-bc92-458d-8c14-8fb68112fa3e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f5781274-bc92-458d-8c14-8fb68112fa3e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f5781274-bc92-458d-8c14-8fb68112fa3e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f5781274-bc92-458d-8c14-8fb68112fa3e/volume", "rel": "self"}, {"href": "http://localhost/nodes/f5781274-bc92-458d-8c14-8fb68112fa3e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f5781274-bc92-458d-8c14-8fb68112fa3e/states", "rel": "self"}, {"href": "http://localhost/nodes/f5781274-bc92-458d-8c14-8fb68112fa3e/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-09-20T14:55:58.164065+00:00"} +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-500aad58-6710-4978-9896-6220adc9f3f1 +Openstack-Request-Id: req-11519994-a593-452c-b1a6-c802ea25db18 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] -GOT:Response: 406 Not Acceptable +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/driver_info/this', 'value': 'foo', 'op': 'add'}, {'path': '/driver_info/that', 'value': 'bar', 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7f62e0ef-7645-48f5-8ad0-a0dfa5a6d844 +Openstack-Request-Id: req-c6eed338-1de6-4a02-b9b6-5c134a0f9fe1 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error Message\", \"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-56410fb6-cc09-405b-be23-9c21faf7e6da +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-d3021699-53e8-4a65-bbff-63765837f2f3 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}"}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_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 -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.TestPut.test_put_raid -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid ... 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": "2000-01-01T00:00:00+00:00"}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_no_chassis_uuid +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ... ok -PATCH: /v1/nodes/c9f683e1-30c5-43bb-be53-567e5cb5c766 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -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': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-94064755-ee0b-45b1-95d8-d95c85cf6ee2 +Openstack-Request-Id: req-a2eb9dd1-f843-4bfe-9c78-6c4813f2b8ad X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "c9f683e1-30c5-43bb-be53-567e5cb5c766", "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/c9f683e1-30c5-43bb-be53-567e5cb5c766", "rel": "self"}, {"href": "http://localhost/nodes/c9f683e1-30c5-43bb-be53-567e5cb5c766", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/c9f683e1-30c5-43bb-be53-567e5cb5c766/ports", "rel": "self"}, {"href": "http://localhost/nodes/c9f683e1-30c5-43bb-be53-567e5cb5c766/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:17.802871+00:00"} -PATCH: /v1/nodes/2524edbc-9090-426b-8797-210a032970ba [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} +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-e36475b8-4b16-449d-a982-c8d34bce948b +Openstack-Request-Id: req-bdf470a7-e5c2-4b62-98fd-8fdfd51f74b3 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "2524edbc-9090-426b-8797-210a032970ba", "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/2524edbc-9090-426b-8797-210a032970ba", "rel": "self"}, {"href": "http://localhost/nodes/2524edbc-9090-426b-8797-210a032970ba", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2524edbc-9090-426b-8797-210a032970ba/ports", "rel": "self"}, {"href": "http://localhost/nodes/2524edbc-9090-426b-8797-210a032970ba/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:17.958554+00:00"} -PATCH: /v1/nodes/d033735f-acdd-4d40-a90e-bba12c750c88 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.45 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes {'name': None, 'uuid': 'e636c9c4-dd23-4d22-9684-de1766176c57', '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 -Openstack-Request-Id: req-dfd033fa-386a-4dec-8d91-f1834657da61 +Location: http://localhost/v1/nodes/e636c9c4-dd23-4d22-9684-de1766176c57 +Openstack-Request-Id: req-3da7a9b2-2652-4091-8b21-17153a1193a1 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "d033735f-acdd-4d40-a90e-bba12c750c88", "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/d033735f-acdd-4d40-a90e-bba12c750c88", "rel": "self"}, {"href": "http://localhost/nodes/d033735f-acdd-4d40-a90e-bba12c750c88", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/d033735f-acdd-4d40-a90e-bba12c750c88/ports", "rel": "self"}, {"href": "http://localhost/nodes/d033735f-acdd-4d40-a90e-bba12c750c88/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:18.082430+00:00"} -PATCH: /v1/nodes/483cb90a-1aed-40a3-b7b8-643f9951c3b9 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "e636c9c4-dd23-4d22-9684-de1766176c57", "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/e636c9c4-dd23-4d22-9684-de1766176c57", "rel": "self"}, {"href": "http://localhost/nodes/e636c9c4-dd23-4d22-9684-de1766176c57", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/ports", "rel": "self"}, {"href": "http://localhost/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/volume", "rel": "self"}, {"href": "http://localhost/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/states", "rel": "self"}, {"href": "http://localhost/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/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/e636c9c4-dd23-4d22-9684-de1766176c57 {} +GOT:{'uuid': 'e636c9c4-dd23-4d22-9684-de1766176c57', '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/e636c9c4-dd23-4d22-9684-de1766176c57', 'rel': 'self'}, {'href': 'http://localhost/nodes/e636c9c4-dd23-4d22-9684-de1766176c57', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e636c9c4-dd23-4d22-9684-de1766176c57/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': '32e1f8bf-8dbb-41c4-987b-5df677a81cf2', '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 -Openstack-Request-Id: req-0b5be43d-ff5e-4125-a172-08d26dde7962 +Location: http://localhost/v1/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2 +Openstack-Request-Id: req-f9473099-e1b8-46dc-b62f-a6f15b8e3a1a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "483cb90a-1aed-40a3-b7b8-643f9951c3b9", "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/483cb90a-1aed-40a3-b7b8-643f9951c3b9", "rel": "self"}, {"href": "http://localhost/nodes/483cb90a-1aed-40a3-b7b8-643f9951c3b9", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/483cb90a-1aed-40a3-b7b8-643f9951c3b9/ports", "rel": "self"}, {"href": "http://localhost/nodes/483cb90a-1aed-40a3-b7b8-643f9951c3b9/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/483cb90a-1aed-40a3-b7b8-643f9951c3b9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/483cb90a-1aed-40a3-b7b8-643f9951c3b9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/483cb90a-1aed-40a3-b7b8-643f9951c3b9/volume", "rel": "self"}, {"href": "http://localhost/nodes/483cb90a-1aed-40a3-b7b8-643f9951c3b9/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/483cb90a-1aed-40a3-b7b8-643f9951c3b9/states", "rel": "self"}, {"href": "http://localhost/nodes/483cb90a-1aed-40a3-b7b8-643f9951c3b9/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": "2020-08-18T08:12:18.545258+00:00"} -PATCH: /v1/nodes/f9750428-ae74-42a3-b8f6-899f51af0653 [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "32e1f8bf-8dbb-41c4-987b-5df677a81cf2", "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/32e1f8bf-8dbb-41c4-987b-5df677a81cf2", "rel": "self"}, {"href": "http://localhost/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/ports", "rel": "self"}, {"href": "http://localhost/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/volume", "rel": "self"}, {"href": "http://localhost/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/states", "rel": "self"}, {"href": "http://localhost/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/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/32e1f8bf-8dbb-41c4-987b-5df677a81cf2 {} +GOT:{'uuid': '32e1f8bf-8dbb-41c4-987b-5df677a81cf2', '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/32e1f8bf-8dbb-41c4-987b-5df677a81cf2', 'rel': 'self'}, {'href': 'http://localhost/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/32e1f8bf-8dbb-41c4-987b-5df677a81cf2/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': 'b4210c38-7c2c-48fe-8967-2fb74b2bb90e', '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 -Openstack-Request-Id: req-3c7272c8-b493-4b2a-a72d-ce2402c761d3 +Location: http://localhost/v1/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e +Openstack-Request-Id: req-a7dba9bb-ded8-4a37-a0a9-8b6a3c493745 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.21 -{"uuid": "f9750428-ae74-42a3-b8f6-899f51af0653", "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/f9750428-ae74-42a3-b8f6-899f51af0653", "rel": "self"}, {"href": "http://localhost/nodes/f9750428-ae74-42a3-b8f6-899f51af0653", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/f9750428-ae74-42a3-b8f6-899f51af0653/ports", "rel": "self"}, {"href": "http://localhost/nodes/f9750428-ae74-42a3-b8f6-899f51af0653/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f9750428-ae74-42a3-b8f6-899f51af0653/states", "rel": "self"}, {"href": "http://localhost/nodes/f9750428-ae74-42a3-b8f6-899f51af0653/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2020-08-18T08:12:19.164744+00:00"}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_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 -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node ... 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.TestPatch.test_update_network_interface_old_api -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api ... ok - -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.40 +{"uuid": "b4210c38-7c2c-48fe-8967-2fb74b2bb90e", "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/b4210c38-7c2c-48fe-8967-2fb74b2bb90e", "rel": "self"}, {"href": "http://localhost/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/ports", "rel": "self"}, {"href": "http://localhost/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/volume", "rel": "self"}, {"href": "http://localhost/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/states", "rel": "self"}, {"href": "http://localhost/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/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/b4210c38-7c2c-48fe-8967-2fb74b2bb90e {} +GOT:{'uuid': 'b4210c38-7c2c-48fe-8967-2fb74b2bb90e', '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/b4210c38-7c2c-48fe-8967-2fb74b2bb90e', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4210c38-7c2c-48fe-8967-2fb74b2bb90e/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': '43a1795c-5fff-446e-80a0-76e48c1359a6', '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 -Openstack-Request-Id: req-8af9a0f1-6cea-441c-b6db-57b5526bc2fc +Location: http://localhost/v1/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6 +Openstack-Request-Id: req-9e964781-012f-4062-998b-0c8026efe17a 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/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.40 +{"uuid": "43a1795c-5fff-446e-80a0-76e48c1359a6", "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/43a1795c-5fff-446e-80a0-76e48c1359a6", "rel": "self"}, {"href": "http://localhost/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/ports", "rel": "self"}, {"href": "http://localhost/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/volume", "rel": "self"}, {"href": "http://localhost/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/states", "rel": "self"}, {"href": "http://localhost/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/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/43a1795c-5fff-446e-80a0-76e48c1359a6 {} +GOT:{'uuid': '43a1795c-5fff-446e-80a0-76e48c1359a6', '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/43a1795c-5fff-446e-80a0-76e48c1359a6', 'rel': 'self'}, {'href': 'http://localhost/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/43a1795c-5fff-446e-80a0-76e48c1359a6/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': '70dbbac0-e27f-4016-93e6-2c21880942af', '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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-fc39dbf0-3584-4ff3-9d0e-4c1c472f6b78 +Location: http://localhost/v1/nodes/70dbbac0-e27f-4016-93e6-2c21880942af +Openstack-Request-Id: req-bc59a854-a52c-4f45-8ffd-de10293cf63f 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": "2020-08-18T08:12:18.811868+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': '2020-08-18T08:12:18.811868+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'} +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "70dbbac0-e27f-4016-93e6-2c21880942af", "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/70dbbac0-e27f-4016-93e6-2c21880942af", "rel": "self"}, {"href": "http://localhost/nodes/70dbbac0-e27f-4016-93e6-2c21880942af", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/ports", "rel": "self"}, {"href": "http://localhost/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/volume", "rel": "self"}, {"href": "http://localhost/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/states", "rel": "self"}, {"href": "http://localhost/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/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/70dbbac0-e27f-4016-93e6-2c21880942af {} +GOT:{'uuid': '70dbbac0-e27f-4016-93e6-2c21880942af', '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/70dbbac0-e27f-4016-93e6-2c21880942af', 'rel': 'self'}, {'href': 'http://localhost/nodes/70dbbac0-e27f-4016-93e6-2c21880942af', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/70dbbac0-e27f-4016-93e6-2c21880942af/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': 'ca93d835-7cd3-4b92-9211-f9303bba0b1d', '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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-2d2a7eed-e747-4cef-a3bc-83edb3019815 +Location: http://localhost/v1/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d +Openstack-Request-Id: req-f1d30386-b5c0-4c5e-9330-a06ea820229d 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": "2020-08-18T08:12:19.261259+00:00"}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_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_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.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_power_invalid_state_request -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_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_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 -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode ... 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.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.TestTraits.test_get_all_traits_fails_with_bad_version -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.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 - -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/ports {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "ca93d835-7cd3-4b92-9211-f9303bba0b1d", "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/ca93d835-7cd3-4b92-9211-f9303bba0b1d", "rel": "self"}, {"href": "http://localhost/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/ports", "rel": "self"}, {"href": "http://localhost/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/volume", "rel": "self"}, {"href": "http://localhost/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/states", "rel": "self"}, {"href": "http://localhost/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/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/ca93d835-7cd3-4b92-9211-f9303bba0b1d {} +GOT:{'uuid': 'ca93d835-7cd3-4b92-9211-f9303bba0b1d', '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/ca93d835-7cd3-4b92-9211-f9303bba0b1d', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca93d835-7cd3-4b92-9211-f9303bba0b1d/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': 'fd17967c-d927-46e0-8d16-ab9089696ff6', '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 -Openstack-Request-Id: req-ca7c6fae-34b9-4c42-902f-8f9c02d7d175 +Location: http://localhost/v1/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6 +Openstack-Request-Id: req-583d256b-262d-4bec-8e7f-a9593bc3d271 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/validate?node=spam {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "fd17967c-d927-46e0-8d16-ab9089696ff6", "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/fd17967c-d927-46e0-8d16-ab9089696ff6", "rel": "self"}, {"href": "http://localhost/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/ports", "rel": "self"}, {"href": "http://localhost/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/volume", "rel": "self"}, {"href": "http://localhost/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/states", "rel": "self"}, {"href": "http://localhost/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/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/fd17967c-d927-46e0-8d16-ab9089696ff6 {} +GOT:{'uuid': 'fd17967c-d927-46e0-8d16-ab9089696ff6', '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/fd17967c-d927-46e0-8d16-ab9089696ff6', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd17967c-d927-46e0-8d16-ab9089696ff6/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': 'db5a0dd6-65d9-4de5-89db-1aa006448ded', '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 -Openstack-Request-Id: req-eed64357-bf8d-4c00-a942-a3209c470d87 +Location: http://localhost/v1/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded +Openstack-Request-Id: req-5e8108ad-e182-4aab-9a68-cffdf488621a 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/volume/targets {} -GOT:{'targets': [{'uuid': '8dca6dd0-a048-4bf3-8d77-a29d8234bc1e', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/8dca6dd0-a048-4bf3-8d77-a29d8234bc1e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8dca6dd0-a048-4bf3-8d77-a29d8234bc1e', 'rel': 'bookmark'}]}, {'uuid': '981978e7-708f-4a9f-b8a6-8c4dcc3a943f', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/981978e7-708f-4a9f-b8a6-8c4dcc3a943f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/981978e7-708f-4a9f-b8a6-8c4dcc3a943f', 'rel': 'bookmark'}]}]} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} -GOT:{'targets': [{'uuid': '8dca6dd0-a048-4bf3-8d77-a29d8234bc1e', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/8dca6dd0-a048-4bf3-8d77-a29d8234bc1e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/8dca6dd0-a048-4bf3-8d77-a29d8234bc1e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=1&marker=8dca6dd0-a048-4bf3-8d77-a29d8234bc1e'} -GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "db5a0dd6-65d9-4de5-89db-1aa006448ded", "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/db5a0dd6-65d9-4de5-89db-1aa006448ded", "rel": "self"}, {"href": "http://localhost/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/ports", "rel": "self"}, {"href": "http://localhost/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/volume", "rel": "self"}, {"href": "http://localhost/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/states", "rel": "self"}, {"href": "http://localhost/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/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/db5a0dd6-65d9-4de5-89db-1aa006448ded {} +GOT:{'uuid': 'db5a0dd6-65d9-4de5-89db-1aa006448ded', '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/db5a0dd6-65d9-4de5-89db-1aa006448ded', 'rel': 'self'}, {'href': 'http://localhost/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/db5a0dd6-65d9-4de5-89db-1aa006448ded/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': '46746117-f6e8-48da-8ac4-3016b871df28', '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-aec11c27-d550-4e9b-a395-cd158fda4bba +Location: http://localhost/v1/nodes/46746117-f6e8-48da-8ac4-3016b871df28 +Openstack-Request-Id: req-4b9ad04e-7e1d-4b23-9ea5-6b1901d12fa2 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': ''}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "46746117-f6e8-48da-8ac4-3016b871df28", "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/46746117-f6e8-48da-8ac4-3016b871df28", "rel": "self"}, {"href": "http://localhost/nodes/46746117-f6e8-48da-8ac4-3016b871df28", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/46746117-f6e8-48da-8ac4-3016b871df28/ports", "rel": "self"}, {"href": "http://localhost/nodes/46746117-f6e8-48da-8ac4-3016b871df28/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/46746117-f6e8-48da-8ac4-3016b871df28/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/46746117-f6e8-48da-8ac4-3016b871df28/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/46746117-f6e8-48da-8ac4-3016b871df28/volume", "rel": "self"}, {"href": "http://localhost/nodes/46746117-f6e8-48da-8ac4-3016b871df28/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/46746117-f6e8-48da-8ac4-3016b871df28/states", "rel": "self"}, {"href": "http://localhost/nodes/46746117-f6e8-48da-8ac4-3016b871df28/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/46746117-f6e8-48da-8ac4-3016b871df28 {} +GOT:{'uuid': '46746117-f6e8-48da-8ac4-3016b871df28', '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/46746117-f6e8-48da-8ac4-3016b871df28', 'rel': 'self'}, {'href': 'http://localhost/nodes/46746117-f6e8-48da-8ac4-3016b871df28', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/46746117-f6e8-48da-8ac4-3016b871df28/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/46746117-f6e8-48da-8ac4-3016b871df28/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/46746117-f6e8-48da-8ac4-3016b871df28/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/46746117-f6e8-48da-8ac4-3016b871df28/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/46746117-f6e8-48da-8ac4-3016b871df28/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/46746117-f6e8-48da-8ac4-3016b871df28/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/46746117-f6e8-48da-8ac4-3016b871df28/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/46746117-f6e8-48da-8ac4-3016b871df28/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': '6652433d-0607-43b7-9514-93092060dd04', '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 -Openstack-Request-Id: req-9951ea8a-cb06-496b-bbe3-fb52b081aa5d +Location: http://localhost/v1/nodes/6652433d-0607-43b7-9514-93092060dd04 +Openstack-Request-Id: req-d13a4acf-c97c-42c0-82e5-6b5c9f958363 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/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'guido-van-rossum'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "6652433d-0607-43b7-9514-93092060dd04", "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/6652433d-0607-43b7-9514-93092060dd04", "rel": "self"}, {"href": "http://localhost/nodes/6652433d-0607-43b7-9514-93092060dd04", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6652433d-0607-43b7-9514-93092060dd04/ports", "rel": "self"}, {"href": "http://localhost/nodes/6652433d-0607-43b7-9514-93092060dd04/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6652433d-0607-43b7-9514-93092060dd04/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6652433d-0607-43b7-9514-93092060dd04/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6652433d-0607-43b7-9514-93092060dd04/volume", "rel": "self"}, {"href": "http://localhost/nodes/6652433d-0607-43b7-9514-93092060dd04/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6652433d-0607-43b7-9514-93092060dd04/states", "rel": "self"}, {"href": "http://localhost/nodes/6652433d-0607-43b7-9514-93092060dd04/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/6652433d-0607-43b7-9514-93092060dd04 {} +GOT:{'uuid': '6652433d-0607-43b7-9514-93092060dd04', '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/6652433d-0607-43b7-9514-93092060dd04', 'rel': 'self'}, {'href': 'http://localhost/nodes/6652433d-0607-43b7-9514-93092060dd04', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/6652433d-0607-43b7-9514-93092060dd04/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6652433d-0607-43b7-9514-93092060dd04/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/6652433d-0607-43b7-9514-93092060dd04/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/6652433d-0607-43b7-9514-93092060dd04/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/6652433d-0607-43b7-9514-93092060dd04/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/6652433d-0607-43b7-9514-93092060dd04/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/6652433d-0607-43b7-9514-93092060dd04/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/6652433d-0607-43b7-9514-93092060dd04/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': '1bd3826b-e061-4f21-a809-1bc2fb5a63dd', '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 -Openstack-Request-Id: req-1daf9f02-05b5-4e09-98c3-7970b7f67a03 +Location: http://localhost/v1/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd +Openstack-Request-Id: req-f2807f0c-b228-4388-b40d-72f6a2c4f4f6 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": "2020-08-18T08:12:17.819891+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/chassis_uuid', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "1bd3826b-e061-4f21-a809-1bc2fb5a63dd", "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/1bd3826b-e061-4f21-a809-1bc2fb5a63dd", "rel": "self"}, {"href": "http://localhost/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/ports", "rel": "self"}, {"href": "http://localhost/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/volume", "rel": "self"}, {"href": "http://localhost/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/states", "rel": "self"}, {"href": "http://localhost/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/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/1bd3826b-e061-4f21-a809-1bc2fb5a63dd {}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_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_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.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_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.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.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.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.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_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.TestPatch.test_update_with_reset_interfaces +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces ... 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': {'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-09-20T14:56:02.096327+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 -Openstack-Request-Id: req-d50f7b3c-c938-4658-ac0a-27036c060c07 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-aa8743cd-8846-4bbd-b227-524a9a2dcaf3 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": "2020-08-18T08:12:18.072916+00:00"} -PATCH: /v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624 [{'path': '/boot_interface', 'op': 'remove'}] -GOT:Response: 200 OK +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-09-20T14:56:05.188008+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': '2021-09-20T14:56:05.188008+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 Content-Type: application/json -Openstack-Request-Id: req-8f67fff2-ebbb-4a47-8714-097b4cc4c049 +Openstack-Request-Id: req-7efaa337-ede5-46e7-95f4-94970c251b49 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "24c43146-441a-4997-8cbd-c2e43a5cc624", "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/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/states", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/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": "2020-08-18T08:12:18.425729+00:00"} -PATCH: /v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624 [{'path': '/console_interface', 'op': 'remove'}] -GOT:Response: 200 OK +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-c5c60959-043a-48a6-84a7-b77d35b47e50 +Openstack-Request-Id: req-21675a70-9b2f-4906-bc07-f8df4b58e67c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "24c43146-441a-4997-8cbd-c2e43a5cc624", "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/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/states", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/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": "2020-08-18T08:12:18.425729+00:00"} -PATCH: /v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624 [{'path': '/deploy_interface', 'op': 'remove'}] -GOT:Response: 200 OK +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-ce991845-bc3a-48af-8ddd-14cf5396d211 +Openstack-Request-Id: req-ed79b64b-8bec-47c6-86c7-d29f814e4e94 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "24c43146-441a-4997-8cbd-c2e43a5cc624", "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/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/states", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/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": "2020-08-18T08:12:18.425729+00:00"} -PATCH: /v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624 [{'path': '/inspect_interface', 'op': 'remove'}] -GOT:Response: 200 OK +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'}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_traits +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits ... 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.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_create_node_invalid_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface ... ok + +GOT:{'uuid': '1bd3826b-e061-4f21-a809-1bc2fb5a63dd', '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/1bd3826b-e061-4f21-a809-1bc2fb5a63dd', 'rel': 'self'}, {'href': 'http://localhost/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1bd3826b-e061-4f21-a809-1bc2fb5a63dd/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': '5eaddd36-962f-4954-8a5d-1198ccbe5979', '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 -Openstack-Request-Id: req-39002a87-60e1-4504-bbdf-6486e1b86e4e +Location: http://localhost/v1/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979 +Openstack-Request-Id: req-1ad80f02-9649-45d7-8e7e-6d62aad4b455 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "24c43146-441a-4997-8cbd-c2e43a5cc624", "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/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/states", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/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": "2020-08-18T08:12:18.425729+00:00"} -PATCH: /v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624 [{'path': '/management_interface', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.40 +{"uuid": "5eaddd36-962f-4954-8a5d-1198ccbe5979", "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/5eaddd36-962f-4954-8a5d-1198ccbe5979", "rel": "self"}, {"href": "http://localhost/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/ports", "rel": "self"}, {"href": "http://localhost/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/volume", "rel": "self"}, {"href": "http://localhost/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/states", "rel": "self"}, {"href": "http://localhost/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/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/5eaddd36-962f-4954-8a5d-1198ccbe5979 {} +GOT:{'uuid': '5eaddd36-962f-4954-8a5d-1198ccbe5979', '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/5eaddd36-962f-4954-8a5d-1198ccbe5979', 'rel': 'self'}, {'href': 'http://localhost/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/5eaddd36-962f-4954-8a5d-1198ccbe5979/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/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-567bd106-6205-4038-a31c-265ef67f3a3b +Openstack-Request-Id: req-e5054ef7-705c-4859-b2e6-e44577ac1e86 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "24c43146-441a-4997-8cbd-c2e43a5cc624", "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/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/states", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/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": "2020-08-18T08:12:18.425729+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.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_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_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_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_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.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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}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_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_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_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_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.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.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.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_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.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_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 -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/console_enabled', 'op': 'replace', 'value': True}] -GOT:Response: 400 Bad Request +PATCH: /v1/nodes/c7bf1c9b-37f2-4142-b476-2363e9c1e5a1 [{'path': '/instance_uuid', 'op': 'remove'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-d4beb1c3-77a3-4e36-8531-155429106d0d +Openstack-Request-Id: req-e5226016-1315-4fe9-989a-a337bb26995b 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/node-57.1 [{'path': '/maintenance', 'op': 'replace', 'value': 'true'}] +X-Openstack-Ironic-Api-Version: 1.39 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node \\\"c7bf1c9b-37f2-4142-b476-2363e9c1e5a1\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} +PATCH: /v1/nodes/6cb65748-4fda-454e-b39c-580117fb922e [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f619dbf7-7317-44d3-b7cc-eb034be9bad6 +Openstack-Request-Id: req-58ccee50-1f98-473f-8c0c-5eef39a1d385 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": "2020-08-18T08:12:19.331093+00:00"} -PATCH: /v1/nodes/244c021e-c967-40ea-8769-23d86b69d517 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "6cb65748-4fda-454e-b39c-580117fb922e", "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/6cb65748-4fda-454e-b39c-580117fb922e", "rel": "self"}, {"href": "http://localhost/nodes/6cb65748-4fda-454e-b39c-580117fb922e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6cb65748-4fda-454e-b39c-580117fb922e/ports", "rel": "self"}, {"href": "http://localhost/nodes/6cb65748-4fda-454e-b39c-580117fb922e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6cb65748-4fda-454e-b39c-580117fb922e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6cb65748-4fda-454e-b39c-580117fb922e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6cb65748-4fda-454e-b39c-580117fb922e/volume", "rel": "self"}, {"href": "http://localhost/nodes/6cb65748-4fda-454e-b39c-580117fb922e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6cb65748-4fda-454e-b39c-580117fb922e/states", "rel": "self"}, {"href": "http://localhost/nodes/6cb65748-4fda-454e-b39c-580117fb922e/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-09-20T14:56:03.842037+00:00"} +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-5c196040-25d2-4464-9fd5-2c4908591c25 +Openstack-Request-Id: req-e8d675eb-20e0-492a-b186-82f106339591 +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": "2021-09-20T14:56:05.875087+00:00"} +PATCH: /v1/nodes/711861fa-20e4-4b72-b495-f24c60225ddf [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-5f58281d-4d34-4c47-83ca-a6d27c1ab1f9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "244c021e-c967-40ea-8769-23d86b69d517", "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/244c021e-c967-40ea-8769-23d86b69d517", "rel": "self"}, {"href": "http://localhost/nodes/244c021e-c967-40ea-8769-23d86b69d517", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/244c021e-c967-40ea-8769-23d86b69d517/ports", "rel": "self"}, {"href": "http://localhost/nodes/244c021e-c967-40ea-8769-23d86b69d517/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/244c021e-c967-40ea-8769-23d86b69d517/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/244c021e-c967-40ea-8769-23d86b69d517/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/244c021e-c967-40ea-8769-23d86b69d517/volume", "rel": "self"}, {"href": "http://localhost/nodes/244c021e-c967-40ea-8769-23d86b69d517/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/244c021e-c967-40ea-8769-23d86b69d517/states", "rel": "self"}, {"href": "http://localhost/nodes/244c021e-c967-40ea-8769-23d86b69d517/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": "2020-08-18T08:12:19.745429+00:00"} -PATCH: /v1/nodes/3d1c114c-9a52-40f2-a983-e34ccb67f019 [{'path': '/instance_uuid', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update node traits via node patch. Node traits should be updated via the node traits API.\", \"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-1dfe31ba-a1c5-4cc6-82e5-66be6dfb2883 +Openstack-Request-Id: req-e45ed71c-f64d-47c4-817c-09e8d8e9ff42 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.38 -{"uuid": "3d1c114c-9a52-40f2-a983-e34ccb67f019", "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/3d1c114c-9a52-40f2-a983-e34ccb67f019", "rel": "self"}, {"href": "http://localhost/nodes/3d1c114c-9a52-40f2-a983-e34ccb67f019", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/3d1c114c-9a52-40f2-a983-e34ccb67f019/ports", "rel": "self"}, {"href": "http://localhost/nodes/3d1c114c-9a52-40f2-a983-e34ccb67f019/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3d1c114c-9a52-40f2-a983-e34ccb67f019/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3d1c114c-9a52-40f2-a983-e34ccb67f019/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3d1c114c-9a52-40f2-a983-e34ccb67f019/volume", "rel": "self"}, {"href": "http://localhost/nodes/3d1c114c-9a52-40f2-a983-e34ccb67f019/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3d1c114c-9a52-40f2-a983-e34ccb67f019/states", "rel": "self"}, {"href": "http://localhost/nodes/3d1c114c-9a52-40f2-a983-e34ccb67f019/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": "2020-08-18T08:12:20.053680+00:00"} -PATCH: /v1/nodes/6c70e723-4750-4f53-bd19-945e5af32276 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +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-09-20T14:56:09.954529+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_default_state_none +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_default_state_none ... ok + +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-206b4442-17d6-4c5a-b779-4bdd90424c34 +Openstack-Request-Id: req-c8f8fd65-ab8b-4918-b8c8-bd27f1aad9a4 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}"} -PATCH: /v1/nodes/e0f65f5b-378c-418c-bc7d-73d3471b8356 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] -GOT:Response: 406 Not Acceptable +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-09-20T14:56:00.935503+00:00"} +PATCH: /v1/nodes/16e24777-ead9-4e5e-b4ca-5538d0e2a912 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-03c00d6b-9953-494c-b5bb-63ace92116dd +Openstack-Request-Id: req-2c428865-6922-4fd2-bb97-d99916b56071 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}"}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.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_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_from_manage -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_manage ... 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_set_all_traits_with_chassis -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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_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 -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits ... 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 - -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.21 +{"uuid": "16e24777-ead9-4e5e-b4ca-5538d0e2a912", "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/16e24777-ead9-4e5e-b4ca-5538d0e2a912", "rel": "self"}, {"href": "http://localhost/nodes/16e24777-ead9-4e5e-b4ca-5538d0e2a912", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/16e24777-ead9-4e5e-b4ca-5538d0e2a912/ports", "rel": "self"}, {"href": "http://localhost/nodes/16e24777-ead9-4e5e-b4ca-5538d0e2a912/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/16e24777-ead9-4e5e-b4ca-5538d0e2a912/states", "rel": "self"}, {"href": "http://localhost/nodes/16e24777-ead9-4e5e-b4ca-5538d0e2a912/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2021-09-20T14:56:03.730143+00:00"} +PATCH: /v1/nodes/2b687bea-053b-4ac1-a24b-f2b61d08f319 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-e61c2cf4-7afc-40ce-841d-e9e35f045afc +Openstack-Request-Id: req-184a1de6-5e42-49f7-8989-022868b4ab97 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": "2020-08-18T08:12:19.551473+00:00"} +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 Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-a63d9424-f49c-4401-ad78-4f0e78df70d2 +Openstack-Request-Id: req-fab2e3aa-aced-413a-b600-4d1d897931c4 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"} +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-09-20T14:56:08.800459+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': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +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-09-20T14:56:08.800459+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: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ab8e5aab-a8fb-4f14-8069-a50439d5b115 -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 {'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/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-b9808ab4-dd6f-4081-85fc-72b08618e4df +Openstack-Request-Id: req-e8b5bbbb-2af9-46cb-85fc-706c801924b6 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"}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_no_chassis_uuid -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_default_resource_class ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_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.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_port.TestListPorts.test_collection_links_default_limit -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links_default_limit ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state ... ok +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': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}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.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.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_inject_nmi ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inject_nmi ... 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.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_detail -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... 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.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_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 -GET: /v1/nodes?sort_key=resource_class {} +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-67bb8df3-e208-4022-a005-189e98951637 +Openstack-Request-Id: req-0771ba12-67be-4fd9-afec-6f427566d330 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.20 +X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/nodes/validate?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +PATCH: /v1/nodes/6b5bd78c-7e7c-46ea-a17c-e2c62695a1a8 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-17151697-6a87-46c4-a4ef-d46c78d79368 +Openstack-Request-Id: req-a2a0c925-9581-4c26-9919-e7dbcb18c70b 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": "2020-08-18T08:12:16.307593+00:00"} -PATCH: /v1/nodes/fbac6df9-26b8-4359-88b8-a2637794d59c [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"uuid": "6b5bd78c-7e7c-46ea-a17c-e2c62695a1a8", "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/6b5bd78c-7e7c-46ea-a17c-e2c62695a1a8", "rel": "self"}, {"href": "http://localhost/nodes/6b5bd78c-7e7c-46ea-a17c-e2c62695a1a8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6b5bd78c-7e7c-46ea-a17c-e2c62695a1a8/ports", "rel": "self"}, {"href": "http://localhost/nodes/6b5bd78c-7e7c-46ea-a17c-e2c62695a1a8/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:56:03.831640+00:00"} +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-8f92d2e6-be8b-44d8-a8bc-919813e6ee66 +Openstack-Request-Id: req-61847fb1-96ee-4b9a-8204-96a7a3884daf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "fbac6df9-26b8-4359-88b8-a2637794d59c", "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/fbac6df9-26b8-4359-88b8-a2637794d59c", "rel": "self"}, {"href": "http://localhost/nodes/fbac6df9-26b8-4359-88b8-a2637794d59c", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/fbac6df9-26b8-4359-88b8-a2637794d59c/ports", "rel": "self"}, {"href": "http://localhost/nodes/fbac6df9-26b8-4359-88b8-a2637794d59c/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:16.737463+00:00"} -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-e050ad04-43dc-450b-ad66-a1ab384a2f8c -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": "2020-08-18T08:12:16.990978+00:00"} -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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-57.1 could not be found.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/f9c95350-1290-44da-bee5-cd05b96db192 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-190fd011-e7b7-400b-899c-bb9e08d67b34 +Openstack-Request-Id: req-d4e9f33e-dbc0-4ccd-afb9-95444d8b7ff4 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': '/maintenance', 'op': 'replace', 'value': 'true'}] +X-Openstack-Ironic-Api-Version: 1.15 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/9f16935d-8b71-4652-8ee6-2f4526051c0f [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fc58a93f-2756-4274-a29e-36f7acce9376 +Openstack-Request-Id: req-9582d259-6204-4b72-99a2-c5fcc4a7214e 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": "2020-08-18T08:12:17.748925+00:00"} -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.46 +{"uuid": "9f16935d-8b71-4652-8ee6-2f4526051c0f", "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/9f16935d-8b71-4652-8ee6-2f4526051c0f", "rel": "self"}, {"href": "http://localhost/nodes/9f16935d-8b71-4652-8ee6-2f4526051c0f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/9f16935d-8b71-4652-8ee6-2f4526051c0f/ports", "rel": "self"}, {"href": "http://localhost/nodes/9f16935d-8b71-4652-8ee6-2f4526051c0f/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9f16935d-8b71-4652-8ee6-2f4526051c0f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9f16935d-8b71-4652-8ee6-2f4526051c0f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9f16935d-8b71-4652-8ee6-2f4526051c0f/volume", "rel": "self"}, {"href": "http://localhost/nodes/9f16935d-8b71-4652-8ee6-2f4526051c0f/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9f16935d-8b71-4652-8ee6-2f4526051c0f/states", "rel": "self"}, {"href": "http://localhost/nodes/9f16935d-8b71-4652-8ee6-2f4526051c0f/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-09-20T14:56:09.960125+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': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a8745e7b-d8fb-4b40-b81a-1aaecab85f96 +Openstack-Request-Id: req-25e25e57-e193-4d41-b789-0ba2f1fa0640 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/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.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': {}, 'storage_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6ea1cfc3-7f41-4abe-9058-deaa83430d2b +Openstack-Request-Id: req-8f23f045-79bd-4ed8-a148-8b33ceef04c9 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/45879a4e-edc3-40d4-8602-cec0dc5c306e [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +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': {'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'}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.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.TestPost.test_create_node_explicit_network_interface +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_no_ver ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_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.TestPost.test_vendor_passthru_get +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_get ... ok + +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e1a1a37c-115e-4296-a6e0-7bfb9f57ba5d +Openstack-Request-Id: req-6d21307a-18cd-41e9-a3d4-729bff2f0709 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "45879a4e-edc3-40d4-8602-cec0dc5c306e", "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/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/states", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/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": "2020-08-18T08:12:18.712753+00:00"} -PATCH: /v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +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-22a568ac-444a-40c8-9b2e-332549a8f09b +Openstack-Request-Id: req-94cc1832-bce0-452d-9570-b10a076ed0d6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "45879a4e-edc3-40d4-8602-cec0dc5c306e", "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/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/states", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/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": "2020-08-18T08:12:18.712753+00:00"} -PATCH: /v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] -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}"} +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-e46b2a7b-b67b-4270-95ab-84ddfb1c34b4 +Openstack-Request-Id: req-ca604617-fff0-4c36-a3d4-02f2ca23b42a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "45879a4e-edc3-40d4-8602-cec0dc5c306e", "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/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/states", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/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": "2020-08-18T08:12:18.712753+00:00"} -PATCH: /v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +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 {'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-8f378d5a-ff00-48ba-a25a-f2844d9c6fcb +Openstack-Request-Id: req-f95f944d-8dc0-4fb7-9a35-7cf4d36b2ad2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "45879a4e-edc3-40d4-8602-cec0dc5c306e", "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/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/states", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/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": "2020-08-18T08:12:18.712753+00:00"} -PATCH: /v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +{"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 {'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-cd145801-4e0c-4787-8701-3f4de1e888a8 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-f843866a-ab7e-463d-8c0d-354b7a9a9e26 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "45879a4e-edc3-40d4-8602-cec0dc5c306e", "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/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/states", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/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": "2020-08-18T08:12:18.712753+00:00"} -PATCH: /v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +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": "2021-09-20T14:56:13.004692+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-09-20T14:56:13.004692+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': {'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-c200fc46-6e26-4389-b978-4eab409f3414 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-434267e2-df6f-4a73-ab28-9d338d8d75e8 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "45879a4e-edc3-40d4-8602-cec0dc5c306e", "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/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/states", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/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": "2020-08-18T08:12:18.712753+00:00"} -PATCH: /v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +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": "2021-09-20T14:56:16.106819+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.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_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.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 + +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9f5a7cf0-54d1-4414-affd-64aa3ea957e5 +Openstack-Request-Id: req-77289857-8e5b-40ac-ab26-fe5ec58b1b22 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "45879a4e-edc3-40d4-8602-cec0dc5c306e", "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/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/states", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/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": "2020-08-18T08:12:18.712753+00:00"} -PATCH: /v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.1 +{"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': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-da296091-f0b3-4e69-bcad-92b284b09b42 +Openstack-Request-Id: req-3509048e-dab2-4aba-b81d-fe696ceea9a2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "45879a4e-edc3-40d4-8602-cec0dc5c306e", "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/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/states", "rel": "self"}, {"href": "http://localhost/nodes/45879a4e-edc3-40d4-8602-cec0dc5c306e/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": "2020-08-18T08:12:18.712753+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_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_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ... ok - -PATCH: /v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624 [{'path': '/power_interface', 'op': 'remove'}] -GOT:Response: 200 OK +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-c9749db0-9950-48a3-b093-3ec81432bda9 +Openstack-Request-Id: req-ca031b16-d07b-4eb3-8f84-91fce45a7e6c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "24c43146-441a-4997-8cbd-c2e43a5cc624", "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/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/states", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/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": "2020-08-18T08:12:18.425729+00:00"} -PATCH: /v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624 [{'path': '/raid_interface', 'op': 'remove'}] -GOT:Response: 200 OK +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-242e0e3c-bc76-45c7-8d2f-5534549a9380 +Openstack-Request-Id: req-6ac28fd3-391d-4a8f-9563-0cca766d19ab X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "24c43146-441a-4997-8cbd-c2e43a5cc624", "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/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/states", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/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": "2020-08-18T08:12:18.425729+00:00"} -PATCH: /v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624 [{'path': '/vendor_interface', 'op': 'remove'}] -GOT:Response: 200 OK +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'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-041fc0fa-2675-4df1-8ab8-0ecf6d4346fa +Openstack-Request-Id: req-9187f293-31cb-4cc8-9d3f-03316888551f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "24c43146-441a-4997-8cbd-c2e43a5cc624", "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/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/states", "rel": "self"}, {"href": "http://localhost/nodes/24c43146-441a-4997-8cbd-c2e43a5cc624/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": "2020-08-18T08:12:18.425729+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/driver', 'value': 'ipmi', 'op': 'replace'}] +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': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-d9a4709f-03b4-4241-9fdb-ca8831c71f40 +Openstack-Request-Id: req-d8987470-7c41-406b-b494-7e066d619b49 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}"}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_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.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_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_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_state -ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state ... 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_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_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_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_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_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 - -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': {}} -GOT:Response: 201 Created +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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-fe9ac3cc-be2e-437b-90b4-b6929ad9dce1 +Openstack-Request-Id: req-e47a8173-7f9d-4a4b-a41a-c85d058238ac 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": "2020-08-18T08:12:21.709560+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.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 -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-85bbb3af-7fa5-4e3e-8b3d-ead6ee9d0451 +Openstack-Request-Id: req-a742cd98-1ab1-4085-8b1c-6c0616d5304a 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": "2020-08-18T08:12:22.023342+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': '2020-08-18T08:12:22.023342+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.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-6bc41687-a11c-4ac3-888e-e9a9b777d26b +Openstack-Request-Id: req-6bd6e4f9-40f9-45ab-bde5-c4d82cdcaa68 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}"} -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'}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.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_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_clean -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ... 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_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_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_set_boot_device -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device ... ok - -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/name', 'value': 'new name', 'op': 'replace'}] +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c90ffd63-b5c9-4dd6-9077-d9e9b260eafe +Openstack-Request-Id: req-586cf4f6-3ef3-415d-8e1a-6cff8f706535 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}"} -PATCH: /v1/nodes/5a70da72-0deb-4079-90ef-0c2c41a7a770 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +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}"}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_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.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_inspect_abort_raises_before_1_41 +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_inspect_abort_raises_before_1_41 ... ok + +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-49153551-55d8-4b4f-8eb0-6ab37cc8af86 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-017ad438-8c40-40b4-a373-9c41973985dc X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "5a70da72-0deb-4079-90ef-0c2c41a7a770", "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/5a70da72-0deb-4079-90ef-0c2c41a7a770", "rel": "self"}, {"href": "http://localhost/nodes/5a70da72-0deb-4079-90ef-0c2c41a7a770", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5a70da72-0deb-4079-90ef-0c2c41a7a770/ports", "rel": "self"}, {"href": "http://localhost/nodes/5a70da72-0deb-4079-90ef-0c2c41a7a770/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2020-08-18T08:12:20.526066+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'}] -GOT:Response: 400 Bad Request +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-09-20T14:56:13.207508+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-09-20T14:56:13.207508+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-09-20T14:56:13.207508+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 -Openstack-Request-Id: req-e48d92af-dd0b-4707-859f-93034609336a +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-aff86868-95f2-4355-910e-1e1891d9dae1 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.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': {}, 'resource_class': 'class2', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'}ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_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_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.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.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_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_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.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_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_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.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.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_adopt_from_adoptfail +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail ... ok + +GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1d00d702-0e2f-45a7-9255-71f4dff731d7 +Openstack-Request-Id: req-ac82f136-b3b1-4187-a34a-754270f7cb04 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": "2020-08-18T08:12:21.365268+00:00"} -PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} +GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-89aa2c8f-b908-476c-8c33-b42c187226ef +Openstack-Request-Id: req-ff6359d8-e151-4d6b-8580-57a401cc20b2 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": "2020-08-18T08:12:21.634923+00:00"} -PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'power_state': 'new state'}] +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/3c9bba43-3b70-4e1d-8a51-c6784df15b8c [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cbd216c9-1613-4f9e-affd-a051efcdc8f6 +Openstack-Request-Id: req-acdb8286-e1dc-4a5b-8554-97d6e6e21bca 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/8ab69434-9ccf-4972-b596-84d2829feb15 [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] -GOT:Response: 200 OK +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/5af7ae9e-e4ee-4d3c-a3a3-f7c0f38b6174 [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d41a1fe3-bac0-4998-9c70-f2a49696389b +Openstack-Request-Id: req-c1d927e1-f8a8-4976-9d56-8a3ea08555d0 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "8ab69434-9ccf-4972-b596-84d2829feb15", "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/8ab69434-9ccf-4972-b596-84d2829feb15", "rel": "self"}, {"href": "http://localhost/nodes/8ab69434-9ccf-4972-b596-84d2829feb15", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8ab69434-9ccf-4972-b596-84d2829feb15/ports", "rel": "self"}, {"href": "http://localhost/nodes/8ab69434-9ccf-4972-b596-84d2829feb15/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8ab69434-9ccf-4972-b596-84d2829feb15/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8ab69434-9ccf-4972-b596-84d2829feb15/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8ab69434-9ccf-4972-b596-84d2829feb15/volume", "rel": "self"}, {"href": "http://localhost/nodes/8ab69434-9ccf-4972-b596-84d2829feb15/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8ab69434-9ccf-4972-b596-84d2829feb15/states", "rel": "self"}, {"href": "http://localhost/nodes/8ab69434-9ccf-4972-b596-84d2829feb15/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": "2020-08-18T08:12:22.399524+00:00"}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.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 - -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': '2020-08-18T08:12:19.261259+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 +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/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-f082cbd4-4a50-4103-bfb6-66be7fb9db5d +Openstack-Request-Id: req-99976a6c-0245-4973-a52a-e0db24e0cbda 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/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.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-def64917-d438-4924-ba4e-592d4eebc211 +Openstack-Request-Id: req-cbda77e0-c919-4ce5-b905-874150ec9f0b 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}"} -POST: /v1/nodes/node-109/vendor_passthru/test {'foo': 'bar'} -GOT:Response: 202 Accepted +{"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: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-fb865b15-9414-4878-9022-2687a17b021d +Openstack-Request-Id: req-c33205ab-d649-41d0-b903-7dbca9523a7d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.5 -null -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'not-supported'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/6a3e9b51-e162-40da-8b0e-12dbcfc708cf [{'path': '/instance_uuid', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-c25b3e2e-f118-4d88-b8b6-3a97039717bd +Openstack-Request-Id: req-4465f0c7-24f4-46c2-9abe-2569f9cdf7a5 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/states/power {'target': 'soft power off', 'timeout': 0} +{"uuid": "6a3e9b51-e162-40da-8b0e-12dbcfc708cf", "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/6a3e9b51-e162-40da-8b0e-12dbcfc708cf", "rel": "self"}, {"href": "http://localhost/nodes/6a3e9b51-e162-40da-8b0e-12dbcfc708cf", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6a3e9b51-e162-40da-8b0e-12dbcfc708cf/ports", "rel": "self"}, {"href": "http://localhost/nodes/6a3e9b51-e162-40da-8b0e-12dbcfc708cf/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2021-09-20T14:56:17.414065+00:00"} +PATCH: /v1/nodes/45c51e77-6ea2-49ab-a9e2-085a21ea444a [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-94ed129f-df17-4cd1-8080-d9b0b0a29145 +Openstack-Request-Id: req-8ab6d3f6-6fe9-405d-a0d8-b055b4f1df46 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.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} +PATCH: /v1/nodes/45c51e77-6ea2-49ab-a9e2-085a21ea444a [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-84d7ea38-46fa-4574-ba0a-7fc5874df568 +Openstack-Request-Id: req-8c7d486a-13ba-4e5a-b664-12f74a94658e 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}"} -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-934293cd-5b21-4f9f-87b2-3c096d20fe9c +PATCH: /v1/nodes/45c51e77-6ea2-49ab-a9e2-085a21ea444a [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-d2a3e0d2-589d-4a01-aeb1-a7244b5f1a74 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} +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/45c51e77-6ea2-49ab-a9e2-085a21ea444a [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9aefa95a-900c-4f76-88c9-d790752b124b +Openstack-Request-Id: req-4ffee3ce-0626-464b-b048-0c3a94d9f7bd 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}"} -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-a1b30134-6ff9-4d24-a511-078881ca35c9 +PATCH: /v1/nodes/45c51e77-6ea2-49ab-a9e2-085a21ea444a [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-f353d8fb-3160-4f08-8355-91c0cb3010c9 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/provision {'target': 'active'} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/45c51e77-6ea2-49ab-a9e2-085a21ea444a [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-605e4d1c-8641-4e6e-9714-3d42b55f771a +Openstack-Request-Id: req-5209b921-37ae-415b-b547-972cd0d1a900 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/provision {'target': 'active'} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.30 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/nodes/45c51e77-6ea2-49ab-a9e2-085a21ea444a [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-05ac6271-0fdb-4ba0-bc20-6a07b8bd6ba1 +Openstack-Request-Id: req-88e6e27e-1b36-4d31-8efb-f5ab67a6b5e0 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': 'deleted', 'configdrive': 'foo'} -GOT:Response: 400 Bad Request +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_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.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.TestPost.test_vendor_passthru_async +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_async ... ok + +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-264b4b06-140b-43cf-88c4-e200bcd7b149 +Openstack-Request-Id: req-fee5b978-f02f-4224-b2de-00bdab8f8d42 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': 'active'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-01ffae5a-bb16-4c94-ba09-548d0494d9a1 +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': {'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 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-fd424106-e65b-4a74-b9a5-b96a293c208a 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_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_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_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_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_get_all_traits -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits ... ok - -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'} +{"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-09-20T14:56:06.518761+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-09-20T14:56:06.518761+00:00'} +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-54600249-61ac-43eb-88c0-947fa9d695f6 +Openstack-Request-Id: req-2926a4b8-eb68-472b-b6a5-b968202dd25d 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.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: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-9a351f9e-e072-4694-bb74-acdd8caeb339 -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': 'abort'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-002f7e1e-42e0-4d13-9e9b-d41eaa3ec391 +Openstack-Request-Id: req-9dc3ce58-7b0d-4fce-a3cb-edd8c9ed3516 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': 'adopt'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-ab235648-2a1b-4382-b982-c279e8d88ff4 -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': 'abort'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-c2002f9b-9588-4557-a4b6-ad238877339e -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/provision {'target': 'abort'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-d050fc2f-5668-4aed-abcf-09018b6a9048 -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': 'manageable'} -GOT:Response: 409 Conflict +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-bf3c9e4a-4f4e-4af7-b036-a760b561c4de +Openstack-Request-Id: req-180b45f3-e4b5-4081-a1e9-3474f961c2cb 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}"} +{"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: 409 Conflict +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8bc68661-b6d3-4874-832a-70ada630243a +Openstack-Request-Id: req-ca12e55e-146d-484d-a58d-dd085e678621 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/provision {'target': 'active', 'configdrive': 'foo'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-7fa38e97-e336-4b52-b503-1a56c71ab9bb +{"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-b5899c6f-e565-4d7e-b17a-45739e39572a 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}]} +{"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/management/inject_nmi {} GOT:Response: 204 No Content -Openstack-Request-Id: req-1e0fd86a-e145-4876-b42e-d371eb9601cf +Openstack-Request-Id: req-f980f8c9-8872-4045-85a0-b574ed57e3d6 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.12 +X-Openstack-Ironic-Api-Version: 1.29 -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-b2a52664-3453-4585-8e66-ef6c9bdabc8e -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': 'true'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-e2487bc7-f880-4550-965c-e362a2a766b3 -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'} -GOT:Response: 500 Internal Server Error +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-04283f91-1579-4733-9972-eef09276cae4 +Openstack-Request-Id: req-86c39849-7d6c-453e-a383-75cd400ccb38 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} +{"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 -Openstack-Request-Id: req-5fe17911-49f6-4966-b0f5-b6908b2e97ac +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-fd4ded80-606e-4fa7-9be6-1b5df6615cdc 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/bad_trait {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-dc0911a3-46a5-45c9-9a09-c0244c6aec73 -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 -GOT:Response: 204 No Content -Openstack-Request-Id: req-6ce2cbdc-675a-42f3-92ff-e50a0f1c9c9f +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-650721ab-8a9b-46eb-a5da-966b3099221a 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.1 -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 "} -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 -Content-Type: application/json -Openstack-Request-Id: req-9aa3b758-140b-4328-bc64-6da389732a5c -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}"}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_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_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_list_with_deleted_node -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_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_root -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_too_long ... ok -ironic.tests.unit.api.controllers.v1.test_node.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.TestTraits.test_add_single_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait ... ok +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'configdrive': 'foo'}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 -PATCH: /v1/nodes/8816f62c-e4d7-4dfe-9d26-3472a8d68e97 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] -GOT:Response: 200 OK +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-7f8baff8-21fc-44c7-8210-69ad4665a86d +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-2388777c-4b36-40d1-acc6-d2e73f528a90 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 -{"uuid": "8816f62c-e4d7-4dfe-9d26-3472a8d68e97", "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/8816f62c-e4d7-4dfe-9d26-3472a8d68e97", "rel": "self"}, {"href": "http://localhost/nodes/8816f62c-e4d7-4dfe-9d26-3472a8d68e97", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/8816f62c-e4d7-4dfe-9d26-3472a8d68e97/ports", "rel": "self"}, {"href": "http://localhost/nodes/8816f62c-e4d7-4dfe-9d26-3472a8d68e97/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8816f62c-e4d7-4dfe-9d26-3472a8d68e97/states", "rel": "self"}, {"href": "http://localhost/nodes/8816f62c-e4d7-4dfe-9d26-3472a8d68e97/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2020-08-18T08:12:20.172807+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'} +{"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-09-20T14:56:20.517946+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-09-20T14:56:20.517946+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-06c357b9-70fe-435b-ae3c-7d993ca8aa4d +Openstack-Request-Id: req-ddbd5663-daaf-4747-876b-89980e0b7395 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": "2020-08-18T08:12:20.588899+00:00"} +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, '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': '2020-08-18T08:12:20.588899+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: 400 Bad Request +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_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_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_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_provision_already_in_state +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_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': {'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': {}} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-cef77757-ebd1-474f-a3a6-0b6bd791959a +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-59db3e95-6a93-4413-888a-ea8bfa62f4ae 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': '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'} +{"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-09-20T14:56:08.327842+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_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-eeda1188-da57-4b10-9aec-dbdac6585139 +Openstack-Request-Id: req-60ae4d04-c0cf-40ba-88eb-39c7121faffb 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.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute driver. Value: 'None'. Mandatory field missing.\", \"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-cc2f5ede-214a-4b85-9a0f-d919a3c43499 +Openstack-Request-Id: req-294d4ed3-ba51-441c-b0d9-415934929234 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'}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.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_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_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_notification_utils.APINotifyTestCase.test_node_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_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.TestPatch.test_remove_non_existent_property_fail -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_port.TestDelete.test_delete_port_byid -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byid ... ok - -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/nodes/node-109/vendor_passthru/test {'foo': 'bar'} GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-22c44b45-8b89-46e1-a5b3-659ac95c57a6 +Content-Type: application/json +Openstack-Request-Id: req-72a59cb8-607a-4692-81e1-9d17b8e8f345 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': 'unrescue'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-46a13d46-7d7b-415e-8009-50c65704fdf4 +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 +Content-Type: application/json +Openstack-Request-Id: req-b20c2876-1325-4004-8546-c37eed7e5ed5 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': 'unrescue'} +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-d878adac-482a-4db1-939f-cc20e76c0f15 +Openstack-Request-Id: req-d02a41f1-cd27-4652-99a0-09c7c9f4562e 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.15 -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/management/inject_nmi {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4934446a-bec0-463a-9197-8749c27b5252 +Openstack-Request-Id: req-da62e6a1-2380-4ed7-bf2c-10ef6dca5f4d 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} +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': 'manage'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-d462915b-7a03-40f0-89b4-da32ba9a1a03 -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/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-fe07069a-f8a0-4fd6-a0d0-b7ad87ca9211 +Openstack-Request-Id: req-116ac947-7df9-4711-94be-3b1915e082f8 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.4 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} -GOT:Response: 400 Bad Request +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-da7c26c3-7444-4339-af8d-8c0075dc1111 +Openstack-Request-Id: req-5e69b923-f0f4-402b-8b94-59758a1350ff 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/maintenance {'reason': 'fake_reason'} +{"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 -Openstack-Request-Id: req-a7f07431-564b-4a19-adf0-09e444acc68d +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-ef2259c3-4db9-4ac8-a08e-d2e6a8e2c367 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.4 -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} -GOT:Response: 406 Not Acceptable +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-e327b336-7f56-4c2b-b392-64c0cd41b919 +Openstack-Request-Id: req-6ed6e543-4813-4169-ba9f-b009ed1eb4ad 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/nodes/badname/traits {} -GOT:Response: 404 Not Found +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}"}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.TestTraits.test_get_all_traits_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_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.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_provision_with_tear_down +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_tear_down ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_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.TestTraits.test_set_all_traits_empty +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_empty ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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.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_notification_utils.APINotifyTestCase.test_emit_maintenance_notification +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_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_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_set_node_maintenance_mode_no_reason +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ... ok + +PATCH: /v1/nodes/45c51e77-6ea2-49ab-a9e2-085a21ea444a [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-5a1a13e7-0712-4d33-832e-3f0430b9864f +Openstack-Request-Id: req-1030dd8c-fa8b-4105-ae3e-bdea45c1e5e0 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}"} -PUT: /v1/nodes/node-39/traits {'trait': 'CUSTOM_3'} -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/6c2f9888-22d8-45a8-8a66-e83e57a179b2 [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-29d50c10-ba6f-4cbd-b068-5fa5c8964144 -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': ['CUSTOM_3']} -GOT:Response: 204 No Content -Openstack-Request-Id: req-804a20a2-8a8b-426d-8217-57a68a50cc5a +Openstack-Request-Id: req-616a9292-57a1-4ed5-87e4-3757d1eac1d6 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': 'afa99287-06cf-4bf9-884f-0702e0980eb8', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/afa99287-06cf-4bf9-884f-0702e0980eb8', 'rel': 'self'}, {'href': 'http://localhost/ports/afa99287-06cf-4bf9-884f-0702e0980eb8', 'rel': 'bookmark'}]}, {'uuid': 'a5512d1b-123b-4910-8977-11f51a3732b1', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/a5512d1b-123b-4910-8977-11f51a3732b1', 'rel': 'self'}, {'href': 'http://localhost/ports/a5512d1b-123b-4910-8977-11f51a3732b1', 'rel': 'bookmark'}]}, {'uuid': 'beffcf27-fbb5-4aad-a711-fd427a8e840c', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/beffcf27-fbb5-4aad-a711-fd427a8e840c', 'rel': 'self'}, {'href': 'http://localhost/ports/beffcf27-fbb5-4aad-a711-fd427a8e840c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=3&marker=beffcf27-fbb5-4aad-a711-fd427a8e840c'} -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': '2020-08-18T08:12:22.706480+00:00', 'updated_at': None}]} -GET: /v1/ports?detail=True {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.21 +{"uuid": "6c2f9888-22d8-45a8-8a66-e83e57a179b2", "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/6c2f9888-22d8-45a8-8a66-e83e57a179b2", "rel": "self"}, {"href": "http://localhost/nodes/6c2f9888-22d8-45a8-8a66-e83e57a179b2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/6c2f9888-22d8-45a8-8a66-e83e57a179b2/ports", "rel": "self"}, {"href": "http://localhost/nodes/6c2f9888-22d8-45a8-8a66-e83e57a179b2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6c2f9888-22d8-45a8-8a66-e83e57a179b2/states", "rel": "self"}, {"href": "http://localhost/nodes/6c2f9888-22d8-45a8-8a66-e83e57a179b2/states", "rel": "bookmark"}], "network_interface": null, "updated_at": null, "created_at": "2021-09-20T14:56:24.196016+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: 201 Created Content-Type: application/json -Openstack-Request-Id: req-b7a16ffd-a000-46c7-8178-35efea57dae9 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-b49f7a5c-4c74-4d0d-a66f-3f8e64736d67 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?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:{'ports': [], 'next': {}, 'created_at': {}, 'updated_at': {}} -GET: /v1/ports?fields=uuid,extra {} -GOT:{'ports': [{'uuid': 'c0f65b96-d430-41bb-98e5-b8cde5c1db21', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/c0f65b96-d430-41bb-98e5-b8cde5c1db21', 'rel': 'self'}, {'href': 'http://localhost/ports/c0f65b96-d430-41bb-98e5-b8cde5c1db21', 'rel': 'bookmark'}]}, {'uuid': '0354d3fd-f24a-4fbd-9c1b-d9d27994804f', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/0354d3fd-f24a-4fbd-9c1b-d9d27994804f', 'rel': 'self'}, {'href': 'http://localhost/ports/0354d3fd-f24a-4fbd-9c1b-d9d27994804f', 'rel': 'bookmark'}]}, {'uuid': 'fc5dbf42-cedf-46ec-86fc-8ace5ac5bbdc', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/fc5dbf42-cedf-46ec-86fc-8ace5ac5bbdc', 'rel': 'self'}, {'href': 'http://localhost/ports/fc5dbf42-cedf-46ec-86fc-8ace5ac5bbdc', 'rel': 'bookmark'}]}]} -GET: /v1/ports {} -GOT:{'ports': [{'uuid': 'a2ff6d75-e535-4f58-bc75-b25ab9276540', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/a2ff6d75-e535-4f58-bc75-b25ab9276540', 'rel': 'self'}, {'href': 'http://localhost/ports/a2ff6d75-e535-4f58-bc75-b25ab9276540', 'rel': 'bookmark'}]}, {'uuid': '7ba1b71b-3f38-47e3-b4d7-ecb14ad62740', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/7ba1b71b-3f38-47e3-b4d7-ecb14ad62740', 'rel': 'self'}, {'href': 'http://localhost/ports/7ba1b71b-3f38-47e3-b4d7-ecb14ad62740', 'rel': 'bookmark'}]}, {'uuid': 'ecb0351e-06a5-4534-871a-13ee7dff9d52', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/ecb0351e-06a5-4534-871a-13ee7dff9d52', 'rel': 'self'}, {'href': 'http://localhost/ports/ecb0351e-06a5-4534-871a-13ee7dff9d52', 'rel': 'bookmark'}]}, {'uuid': '2e19b4d8-f200-4d67-95d8-b3b6f97e5e7e', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/2e19b4d8-f200-4d67-95d8-b3b6f97e5e7e', 'rel': 'self'}, {'href': 'http://localhost/ports/2e19b4d8-f200-4d67-95d8-b3b6f97e5e7e', 'rel': 'bookmark'}]}, {'uuid': '9a91cc8a-3787-4f75-baa2-65472ed6fa85', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/9a91cc8a-3787-4f75-baa2-65472ed6fa85', 'rel': 'self'}, {'href': 'http://localhost/ports/9a91cc8a-3787-4f75-baa2-65472ed6fa85', 'rel': 'bookmark'}]}]}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_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_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_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_update_byaddress_not_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byaddress_not_allowed ... 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-09-20T14:56:26.472127+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-09-20T14:56:26.472127+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'}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.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_adopt_from_active_fails +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... 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': None} +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-09-20T14:56:16.106819+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-f0c103a0-8077-4d2d-b626-26707dd5246b +Openstack-Request-Id: req-85fad065-4626-4022-8289-1e6731bfdd0b 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"} +{"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-09-20T14:56:19.093929+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': '868baf69-0c98-41d7-ac4a-93c74fa1059a', '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 +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-09-20T14:56:19.093929+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 -Location: http://localhost/v1/nodes/868baf69-0c98-41d7-ac4a-93c74fa1059a -Openstack-Request-Id: req-2777eff5-1ec0-41bf-951d-d138e7e43235 +Openstack-Request-Id: req-146abd4c-a352-4163-a7ba-39c3c1175646 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 -{"uuid": "868baf69-0c98-41d7-ac4a-93c74fa1059a", "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/868baf69-0c98-41d7-ac4a-93c74fa1059a", "rel": "self"}, {"href": "http://localhost/nodes/868baf69-0c98-41d7-ac4a-93c74fa1059a", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/868baf69-0c98-41d7-ac4a-93c74fa1059a/ports", "rel": "self"}, {"href": "http://localhost/nodes/868baf69-0c98-41d7-ac4a-93c74fa1059a/ports", "rel": "bookmark"}], "updated_at": null, "created_at": "2000-01-01T00:00:00+00:00"} -GET: /v1/nodes/868baf69-0c98-41d7-ac4a-93c74fa1059a {} -GOT:{'uuid': '868baf69-0c98-41d7-ac4a-93c74fa1059a', '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/868baf69-0c98-41d7-ac4a-93c74fa1059a', 'rel': 'self'}, {'href': 'http://localhost/nodes/868baf69-0c98-41d7-ac4a-93c74fa1059a', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/868baf69-0c98-41d7-ac4a-93c74fa1059a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/868baf69-0c98-41d7-ac4a-93c74fa1059a/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': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-d234c505-6558-4238-8bb9-78ec991e3461 -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": "2020-08-18T08:12:23.484183+00:00"}ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_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_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_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_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_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_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.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state ... ok - +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute reservation. Value: 'fake'. Cannot set read only field.\", \"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-752ab12e-ffa2-4829-9170-1f1a04b5203e +Openstack-Request-Id: req-997c506b-8250-4960-9e76-f280674764c5 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'} -GOT:Response: 400 Bad Request +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}"} +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 "} +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-2744d94c-19cb-4571-a2ba-6fde46c2b5ce +Openstack-Request-Id: req-a10c0316-51fa-4aeb-beeb-84281e17953a 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'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-91515016-18c0-4221-93d3-f6a1f1b62d52 +X-Openstack-Ironic-Api-Version: 1.1 +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-b05fb38d-d581-4f78-87fd-8f5434654b98 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'} +X-Openstack-Ironic-Api-Version: 1.41 + +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-2576ade4-4cff-4cd7-a986-c9313cdb3061 +Openstack-Request-Id: req-95c5320d-8632-4025-a424-7b220755bb13 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 {'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.6 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Failed to validate inspection or power info.\", \"debuginfo\": null}"} +PUT: /v1/nodes/node-39/states/power {'target': 'power on'}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_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_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_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.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_port.TestListPorts.test_detail_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_by_node_name_ok ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_set_console_mode_disabled +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled ... ok + GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 -Openstack-Request-Id: req-6e6aab79-23eb-4d85-b819-f0e5a8612390 +Openstack-Request-Id: req-a7cecf72-d511-4401-ab35-5ed246758267 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": "2020-08-18T08:12:21.962642+00:00"} +{"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-09-20T14:56:28.930164+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': '2020-08-18T08:12:21.962642+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_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_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_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.TestPatch.test_update_byid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid ... 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_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_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.TestPatch.test_replace_physical_network_old_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_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.TestPatch.test_replace_portgroup_uuid_remove -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_remove ... 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': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-e2a39bc3-29ed-4335-90e7-fb0fd86a0d86 -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 -Content-Type: application/json -Openstack-Request-Id: req-290b93b4-97ed-44a6-b43a-2a01f1522322 -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 +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-09-20T14:56:28.930164+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 -Openstack-Request-Id: req-77c3f5a4-9a5d-4a97-bdbf-9b3b3f5f8296 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-eed70874-786e-4ee6-b0c5-fbcb473f0a76 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'} -GOT:Response: 406 Not Acceptable +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-09-20T14:56:31.472551+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-09-20T14:56:31.472551+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.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_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_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_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_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_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.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_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_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.TestTraits.test_set_all_traits_rejects_bad_trait +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait ... ok +ironic.tests.unit.api.controllers.v1.test_node.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 + +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-5e285158-26c6-4f81-8825-c892411714f3 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 +Openstack-Request-Id: req-39b95cd3-c164-4900-9f5b-6c0aeb863074 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': {}, 'management_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -GOT:Response: 406 Not Acceptable +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": "2021-09-20T14:56:16.002903+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': {'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-09-20T14:56:16.002903+00:00'} +GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {} +GOT:foo +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-d8b69ca0-07f0-45be-b6d3-59c83f3a88f9 +Openstack-Request-Id: req-49f0af09-5a43-46bc-8b42-8c5f7130f48f 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\": \"Driver fake-hardware does not support test (disabled or not implemented).\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {'test_key': 'test_value'} +GOT:Response: 202 Accepted Content-Type: application/json -Openstack-Request-Id: req-1b358eb1-df6a-468c-b802-8876b325baae +Openstack-Request-Id: req-00faaa2f-43fe-45ee-bc66-3ab35f1cb76d 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-7d547106-3946-4f84-b9a3-f90162b2ca0a +X-Openstack-Ironic-Api-Version: 1.1 +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-88d49d90-8c92-4d3b-9d64-6cdeaada0b87 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'} +X-Openstack-Ironic-Api-Version: 1.17 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-9984d274-5e02-4bf0-b0d0-5d1e65ab1103 +Openstack-Request-Id: req-4ec2ca26-bfa5-49c9-b03b-c593cc05d97f 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.16 {"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', 'traits': ['CUSTOM_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-c25b9838-b513-49d1-ab51-13ab66d41845 +Openstack-Request-Id: req-4ff0e9e4-c0f2-4e08-a17b-9a1cd50067a2 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}"}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_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.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_delete -ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_delete ... 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 -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_by_name -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_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_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_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_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_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_port.TestListPorts.test_get_one_custom_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_one_custom_fields ... ok - -PATCH: /v1/nodes/5e1b8e58-2c3b-4962-a1bc-26e52a1d60e3 [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] +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-c4a43753-912a-4a6f-9694-dee9a80f49a1 +Openstack-Request-Id: req-687be173-848a-49ef-aaa9-fff5a9870e49 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} -GOT:Response: 202 Accepted +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-28f492a2-5a55-4276-96fc-8a3851525c04 +Openstack-Request-Id: req-ef8e69b5-639e-4f75-9c60-0dcba4c54318 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/provision {'target': 'adopt'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-703a6b2b-ac56-45bb-bc53-94650a4ca945 -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 \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"adopting\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d45a521e-c9ed-44e4-b58e-565a31e4201a +Openstack-Request-Id: req-cbaa3143-e138-4c06-bbdf-e66c19a9b4df X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -8384,7 +8322,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-688648cd-061f-4639-bce8-4a7b479939ae +Openstack-Request-Id: req-215b21a8-19e1-4deb-9fbc-ec175cd7a70b X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -8392,7 +8330,7 @@ PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deleted'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fc8c2f98-dc87-4fff-8e43-492250db4577 +Openstack-Request-Id: req-866bebc6-7b71-47d8-9fdb-a8248983fdb7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 @@ -8400,193 +8338,154 @@ 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-bbcad2f0-e012-44ae-99ad-478f459c530d +Openstack-Request-Id: req-60e95076-f0c6-4e7b-969b-98fcfadaa737 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: 204 No Content -Openstack-Request-Id: req-85e284df-e97c-4fd2-ba6f-72ab2d95e769 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"clean_steps\\\" is required when setting target provision state to clean\", \"debuginfo\": null}"}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_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_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_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_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.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_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_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.TestTraits.test_set_all_traits_with_chassis +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_with_chassis ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_port.TestDelete.test_delete_port_byaddress +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_byaddress ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_power_invalid_state_request +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_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_deploy +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_sort_key_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_power_state_power_on_invalid_timeout_valid_soft_ver +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_valid_soft_ver ... ok +ironic.tests.unit.api.controllers.v1.test_port.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 + +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-f4ad7240-06bf-4e85-ae4f-7cd24069056b 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.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing argument: \\\"method\\\"\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'abort'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-c0991fe8-4689-48aa-a5b4-9a22e7cb3699 +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': 'manage'} +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-d19c8673-3778-4893-a916-4947c319645d +Openstack-Request-Id: req-17b44b03-94cd-4c3d-94d3-129191923f9b 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/power {'target': 'power on', 'timeout': 0} +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-37f5c0cf-f124-4674-9d1d-9cac40290d72 +Openstack-Request-Id: req-c48b42aa-e0df-493d-a6f8-928fbadf110b 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}"} +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 Content-Type: application/json -Openstack-Request-Id: req-0ee754eb-25c6-4c28-b2c6-09966247b829 +Openstack-Request-Id: req-71f329c5-673f-4e3d-8351-e5d5ce65ae1e 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': 'power on', 'timeout': 2} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-9e269f74-87e1-4d42-a2f3-fba90674200a -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-979205e5-a881-4cb7-883a-22c6348cead5 -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/management/boot_device {'boot_device': 'pxe'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-44f2140c-8d2f-4b77-83e0-56493bd4f321 +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-4127cdc9-2d65-417c-93fc-2f76ae8c4040 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: 204 No Content -Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 -Openstack-Request-Id: req-4c70ae88-08e1-4246-95c6-7e621e2ebed2 -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/52:54:00:cf:2d:31 -GOT:Response: 400 Bad Request +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-e9f2e347-783a-42da-aa0b-0db9f9fe356c +Openstack-Request-Id: req-287e14db-0582-4b80-ad2d-b6382f01aa31 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}"} -DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 204 No Content -Openstack-Request-Id: req-4396f7c9-4169-4023-ba8b-4ac2ff4e415e +{"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: 202 Accepted +Location: http://localhost/v1/nodes/node-39/states +Openstack-Request-Id: req-6d94c1f7-f45b-4679-a7a7-9bf079601040 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/ports/detail?node=test-node {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-ea83c410-8d44-41d9-b405-0330b41568fb +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-354227a1-22df-4728-8368-cd6a975195f5 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=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': '2020-08-18T08:12:25.786428+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_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_upgrade -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade ... 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': 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': '2020-08-18T08:12:23.484183+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-a0cae477-e7b4-435a-bb86-4d65366f7d81 -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": "2020-08-18T08:12:23.844847+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': '2020-08-18T08:12:23.844847+00:00'} -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-b4a66538-dac4-491b-9636-628905fa8824 -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/management/inject_nmi {} +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-71c72b05-af43-429c-9798-eeb7f6af5fdd -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', 'timeout': 0} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-83b1ee5a-8ed6-4484-a100-657fcea6c34e +Openstack-Request-Id: req-bad57522-cafe-4e4c-8a02-2c128eb54e37 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': 'power on', 'timeout': 2} +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/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-0bcc1235-c6eb-4f92-bd6f-922549e98d4c +Openstack-Request-Id: req-3f5a1b5d-d90d-485f-971f-66328a658ca7 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.36 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-85d536d4-a0c1-4b5e-85aa-9e201978ca6c -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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-a11a87e3-3fa0-4a2e-8a6b-c6afac08245b +PUT: /v1/nodes/node-39/traits {'traits': []} +GOT:Response: 204 No Content +Openstack-Request-Id: req-ab7bb7ef-6032-4c8c-a110-acc80ccc973a 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}"}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_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_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.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_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_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_list_detailed_with_deleted_node -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_portgroups_subresource_invalid_ident -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_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.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi ... ok +X-Openstack-Ironic-Api-Version: 1.37 +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-09-20T14:56:30.128069+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': '2021-09-20T14:56:31.935411+00:00', 'updated_at': None}]} GET: /v1/ports/detail?sort_key=pxe_enabled {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-3f57ba6b-09b0-4139-814d-f8bc9e45c76c +Openstack-Request-Id: req-e9cebdf8-7dbd-43e5-8885-0d2d547dba2c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 @@ -8594,958 +8493,906 @@ GET: /v1/ports?node=test-node {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-99cdd98c-e887-4db4-b7a1-32da9986c81e +Openstack-Request-Id: req-168159f8-927b-4753-a8aa-60b6a5e857f3 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': []} -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': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] -GOT:Response: 200 OK +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-09-20T14:56:36.452275+00:00', 'updated_at': None}]} +GET: /v1/ports?fields=uuid,extra {} +GOT:{'ports': [{'uuid': '2cc7e19b-18e7-4020-9819-8ad21486e7e0', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/2cc7e19b-18e7-4020-9819-8ad21486e7e0', 'rel': 'self'}, {'href': 'http://localhost/ports/2cc7e19b-18e7-4020-9819-8ad21486e7e0', 'rel': 'bookmark'}]}, {'uuid': '253bbb6a-bb17-436e-a70a-521b1ef01d57', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/253bbb6a-bb17-436e-a70a-521b1ef01d57', 'rel': 'self'}, {'href': 'http://localhost/ports/253bbb6a-bb17-436e-a70a-521b1ef01d57', 'rel': 'bookmark'}]}, {'uuid': '69dce16a-1345-4e7f-aa5a-121c3d2d8bd4', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/69dce16a-1345-4e7f-aa5a-121c3d2d8bd4', 'rel': 'self'}, {'href': 'http://localhost/ports/69dce16a-1345-4e7f-aa5a-121c3d2d8bd4', 'rel': 'bookmark'}]}]}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_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_custom_fields_physical_network_upgrade +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network_upgrade ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_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_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_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_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_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_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_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_node.TestPut.test_set_boot_device_by_name +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_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_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_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_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_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_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_portgroup_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_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_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_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.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_port.TestListPorts.test_get_custom_fields_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_custom_fields_physical_network ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_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_port.TestListPorts.test_links +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ... 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_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_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_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_node.TestTraits.test_add_single_trait +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait ... ok + +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-bc73258e-e576-4893-8d18-f5845fbf38e1 +Openstack-Request-Id: req-892f05a4-6e53-4436-ae35-b97109872a3c 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": "2020-08-18T08:12:23.996085+00:00", "updated_at": "2020-08-18T08:12:24.129704+00:00"} -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-53764dce-5344-49ca-bbb0-f697265dcec9 +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': 'manage'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-7997f67b-ad72-4cfb-960e-ca66d526cd29 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/ports/f1fd2e52-4f84-4613-9ab8-3ff60402de16 [{'path': '/extra/vif_port_id', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-ac427ee1-cbbd-48a2-9b9b-7a7be36d06fc +X-Openstack-Ironic-Api-Version: 1.17 + +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-7dcfe510-5ecf-41b6-ad3d-a1484a88fca2 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "f1fd2e52-4f84-4613-9ab8-3ff60402de16", "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/f1fd2e52-4f84-4613-9ab8-3ff60402de16", "rel": "self"}, {"href": "http://localhost/ports/f1fd2e52-4f84-4613-9ab8-3ff60402de16", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:24.826076+00:00", "updated_at": "2020-08-18T08:12:25.034434+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] +X-Openstack-Ironic-Api-Version: 1.26 + +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-ee7eeef1-8ce4-4652-a688-73aa7fe6d8cc +Openstack-Request-Id: req-ce0ee90b-aebe-4df1-97a3-6444226ce01d 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/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"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-f85dc52e-e6b7-4b3e-b4aa-250652c5d073 +Openstack-Request-Id: req-2af95a61-508b-4699-9f0e-4eeae1184807 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}"} -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 \\\"not-supported\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-02f0cc93-bc1b-41a5-a828-84b9f8a44822 +Openstack-Request-Id: req-92be69d1-da99-4e7a-b36d-991d67856fed 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": "2020-08-18T08:12:25.644045+00:00", "updated_at": "2020-08-18T08:12:25.902494+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'} -GOT:Response: 201 Created +{"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': 'rescue', 'rescue_password': 'password'} +GOT:Response: 409 Conflict Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-4930d181-428f-4629-b7a7-3461a474a472 +Openstack-Request-Id: req-4f8217a1-0006-4186-b153-6c640948a8f0 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': '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 +X-Openstack-Ironic-Api-Version: 1.38 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} +GOT:Response: 409 Conflict Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-2ba818ae-ffa2-4852-9476-c19a8058ed68 +Openstack-Request-Id: req-e1a0403d-0b2f-4af0-9bb9-07603bb2b1ad 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": "2020-08-18T08:12:27.036999+00:00", "updated_at": null}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 - -PATCH: /v1/nodes/41c65322-ff4e-4b2b-bdd3-2aa384fa9597 [{'path': '/resource_class', 'value': 'fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] -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': 'rescue', 'rescue_password': 'password'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-b5084175-d8e0-47fc-9565-47cc9a55bad6 +Openstack-Request-Id: req-42eddd2f-72da-4983-ab6e-8d87521faf20 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': {}, 'network_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} -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': 'rescue', 'rescue_password': 'password'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-e66f4d0d-f777-4a45-a901-976bc6b73695 +Openstack-Request-Id: req-b8331e6d-27a1-4e6f-97fa-c14b4dea45a1 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': {}, 'storage_interface': 'foo', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} +X-Openstack-Ironic-Api-Version: 1.38 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'provide', 'clean_steps': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cfac6ae9-d248-4d64-977f-18bb2e379cd1 +Openstack-Request-Id: req-dc6c45b3-9b9e-4232-b0ed-1a33b60d4f2c 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': '', '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.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/provision {'target': 'deleted', 'configdrive': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-62361805-e5a7-4177-a620-05ac13ebdae6 -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': '423b07b9-6db6-422e-afb5-baa4e383ab08', '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/423b07b9-6db6-422e-afb5-baa4e383ab08 -Openstack-Request-Id: req-65281002-3bd7-410b-8ebe-cc73c169c7df -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "423b07b9-6db6-422e-afb5-baa4e383ab08", "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/423b07b9-6db6-422e-afb5-baa4e383ab08", "rel": "self"}, {"href": "http://localhost/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/ports", "rel": "self"}, {"href": "http://localhost/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/volume", "rel": "self"}, {"href": "http://localhost/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/states", "rel": "self"}, {"href": "http://localhost/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/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/423b07b9-6db6-422e-afb5-baa4e383ab08 {} -GOT:{'uuid': '423b07b9-6db6-422e-afb5-baa4e383ab08', '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/423b07b9-6db6-422e-afb5-baa4e383ab08', 'rel': 'self'}, {'href': 'http://localhost/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/423b07b9-6db6-422e-afb5-baa4e383ab08/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': '57784dd0-5332-4f0b-95a3-cf52f3477935', '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/57784dd0-5332-4f0b-95a3-cf52f3477935 -Openstack-Request-Id: req-b53a2a82-f5dc-4ec2-8ef4-cc7434e7e378 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "57784dd0-5332-4f0b-95a3-cf52f3477935", "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/57784dd0-5332-4f0b-95a3-cf52f3477935", "rel": "self"}, {"href": "http://localhost/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/ports", "rel": "self"}, {"href": "http://localhost/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/volume", "rel": "self"}, {"href": "http://localhost/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/states", "rel": "self"}, {"href": "http://localhost/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/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/57784dd0-5332-4f0b-95a3-cf52f3477935 {} -GOT:{'uuid': '57784dd0-5332-4f0b-95a3-cf52f3477935', '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/57784dd0-5332-4f0b-95a3-cf52f3477935', 'rel': 'self'}, {'href': 'http://localhost/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/57784dd0-5332-4f0b-95a3-cf52f3477935/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': '185cd0a9-9c9d-4d55-8076-5b145ac13a53', '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/185cd0a9-9c9d-4d55-8076-5b145ac13a53 -Openstack-Request-Id: req-5714fffc-0b48-4c8f-8bfb-715b5cadf071 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "185cd0a9-9c9d-4d55-8076-5b145ac13a53", "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/185cd0a9-9c9d-4d55-8076-5b145ac13a53", "rel": "self"}, {"href": "http://localhost/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/ports", "rel": "self"}, {"href": "http://localhost/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/volume", "rel": "self"}, {"href": "http://localhost/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/states", "rel": "self"}, {"href": "http://localhost/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/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/185cd0a9-9c9d-4d55-8076-5b145ac13a53 {} -GOT:{'uuid': '185cd0a9-9c9d-4d55-8076-5b145ac13a53', '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/185cd0a9-9c9d-4d55-8076-5b145ac13a53', 'rel': 'self'}, {'href': 'http://localhost/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/185cd0a9-9c9d-4d55-8076-5b145ac13a53/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': '5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8', '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/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8 -Openstack-Request-Id: req-2a4bfc45-14a7-4ba8-a9ad-4af8dec0c0f7 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8", "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/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8", "rel": "self"}, {"href": "http://localhost/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/ports", "rel": "self"}, {"href": "http://localhost/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/volume", "rel": "self"}, {"href": "http://localhost/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/states", "rel": "self"}, {"href": "http://localhost/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/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/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8 {} -GOT:{'uuid': '5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8', '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/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/5c3f0a5d-8db8-47d9-a550-a0ad95f4f6b8/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': '2f6cd89c-2890-412e-b436-2571d2b87a66', '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/2f6cd89c-2890-412e-b436-2571d2b87a66 -Openstack-Request-Id: req-c21837a1-937f-4232-8db0-c2b7801f4b65 +Openstack-Request-Id: req-7d44f3a0-a35e-4576-966e-8efc5b3ea3e7 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "2f6cd89c-2890-412e-b436-2571d2b87a66", "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/2f6cd89c-2890-412e-b436-2571d2b87a66", "rel": "self"}, {"href": "http://localhost/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/ports", "rel": "self"}, {"href": "http://localhost/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/volume", "rel": "self"}, {"href": "http://localhost/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/states", "rel": "self"}, {"href": "http://localhost/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/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/2f6cd89c-2890-412e-b436-2571d2b87a66 {} -GOT:{'uuid': '2f6cd89c-2890-412e-b436-2571d2b87a66', '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/2f6cd89c-2890-412e-b436-2571d2b87a66', 'rel': 'self'}, {'href': 'http://localhost/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/2f6cd89c-2890-412e-b436-2571d2b87a66/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': '7dfa273b-d593-459e-b171-4097bdd634c2', '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/7dfa273b-d593-459e-b171-4097bdd634c2 -Openstack-Request-Id: req-22a71f02-63b1-4409-9a3f-4675723c0472 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "7dfa273b-d593-459e-b171-4097bdd634c2", "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/7dfa273b-d593-459e-b171-4097bdd634c2", "rel": "self"}, {"href": "http://localhost/nodes/7dfa273b-d593-459e-b171-4097bdd634c2", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/ports", "rel": "self"}, {"href": "http://localhost/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/volume", "rel": "self"}, {"href": "http://localhost/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/states", "rel": "self"}, {"href": "http://localhost/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/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/7dfa273b-d593-459e-b171-4097bdd634c2 {} -GOT:{'uuid': '7dfa273b-d593-459e-b171-4097bdd634c2', '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/7dfa273b-d593-459e-b171-4097bdd634c2', 'rel': 'self'}, {'href': 'http://localhost/nodes/7dfa273b-d593-459e-b171-4097bdd634c2', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7dfa273b-d593-459e-b171-4097bdd634c2/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': 'e23a4225-a030-4998-937c-46d914360b94', '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/e23a4225-a030-4998-937c-46d914360b94 -Openstack-Request-Id: req-08fe4da2-a3fa-41a2-b96b-fa56f6642c94 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"deleted\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"available\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-0f5aac9e-af11-45d2-9c3c-d8be8953d1a5 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "e23a4225-a030-4998-937c-46d914360b94", "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/e23a4225-a030-4998-937c-46d914360b94", "rel": "self"}, {"href": "http://localhost/nodes/e23a4225-a030-4998-937c-46d914360b94", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/e23a4225-a030-4998-937c-46d914360b94/ports", "rel": "self"}, {"href": "http://localhost/nodes/e23a4225-a030-4998-937c-46d914360b94/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e23a4225-a030-4998-937c-46d914360b94/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e23a4225-a030-4998-937c-46d914360b94/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e23a4225-a030-4998-937c-46d914360b94/volume", "rel": "self"}, {"href": "http://localhost/nodes/e23a4225-a030-4998-937c-46d914360b94/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e23a4225-a030-4998-937c-46d914360b94/states", "rel": "self"}, {"href": "http://localhost/nodes/e23a4225-a030-4998-937c-46d914360b94/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/e23a4225-a030-4998-937c-46d914360b94 {} -GOT:{'uuid': 'e23a4225-a030-4998-937c-46d914360b94', '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/e23a4225-a030-4998-937c-46d914360b94', 'rel': 'self'}, {'href': 'http://localhost/nodes/e23a4225-a030-4998-937c-46d914360b94', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/e23a4225-a030-4998-937c-46d914360b94/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e23a4225-a030-4998-937c-46d914360b94/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e23a4225-a030-4998-937c-46d914360b94/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e23a4225-a030-4998-937c-46d914360b94/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e23a4225-a030-4998-937c-46d914360b94/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e23a4225-a030-4998-937c-46d914360b94/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e23a4225-a030-4998-937c-46d914360b94/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e23a4225-a030-4998-937c-46d914360b94/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': 'afa7421e-09c8-4d88-b79d-43c2be9f2665', '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/afa7421e-09c8-4d88-b79d-43c2be9f2665 -Openstack-Request-Id: req-b3058eeb-1c7b-4f33-ac21-3dbe6e404952 +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-100e0275-ac70-4d40-9bfe-5bb20f3e1a5c X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "afa7421e-09c8-4d88-b79d-43c2be9f2665", "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/afa7421e-09c8-4d88-b79d-43c2be9f2665", "rel": "self"}, {"href": "http://localhost/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/ports", "rel": "self"}, {"href": "http://localhost/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/volume", "rel": "self"}, {"href": "http://localhost/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/states", "rel": "self"}, {"href": "http://localhost/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/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/afa7421e-09c8-4d88-b79d-43c2be9f2665 {} -GOT:{'uuid': 'afa7421e-09c8-4d88-b79d-43c2be9f2665', '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/afa7421e-09c8-4d88-b79d-43c2be9f2665', 'rel': 'self'}, {'href': 'http://localhost/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/afa7421e-09c8-4d88-b79d-43c2be9f2665/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': '809e7e62-397c-46d2-bc33-167e07021a3b', '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/809e7e62-397c-46d2-bc33-167e07021a3b -Openstack-Request-Id: req-22d51042-f320-436c-82fb-f5d7f040f51f +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-4d5fc94c-cbeb-4918-bc42-31680e69428f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "809e7e62-397c-46d2-bc33-167e07021a3b", "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/809e7e62-397c-46d2-bc33-167e07021a3b", "rel": "self"}, {"href": "http://localhost/nodes/809e7e62-397c-46d2-bc33-167e07021a3b", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/ports", "rel": "self"}, {"href": "http://localhost/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/volume", "rel": "self"}, {"href": "http://localhost/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/states", "rel": "self"}, {"href": "http://localhost/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/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/809e7e62-397c-46d2-bc33-167e07021a3b {} -GOT:{'uuid': '809e7e62-397c-46d2-bc33-167e07021a3b', '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/809e7e62-397c-46d2-bc33-167e07021a3b', 'rel': 'self'}, {'href': 'http://localhost/nodes/809e7e62-397c-46d2-bc33-167e07021a3b', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/809e7e62-397c-46d2-bc33-167e07021a3b/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': '7f9ac55f-48fa-4efd-bf06-28a8567958f1', '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/7f9ac55f-48fa-4efd-bf06-28a8567958f1 -Openstack-Request-Id: req-84896cac-cc80-4da3-8fac-967371cfdc1f +X-Openstack-Ironic-Api-Version: 1.5 + +PUT: /v1/nodes/node-39/maintenance {} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-9c1cf9f9-b2f6-4695-80bf-4160614cc2bf X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "7f9ac55f-48fa-4efd-bf06-28a8567958f1", "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/7f9ac55f-48fa-4efd-bf06-28a8567958f1", "rel": "self"}, {"href": "http://localhost/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/ports", "rel": "self"}, {"href": "http://localhost/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/volume", "rel": "self"}, {"href": "http://localhost/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/states", "rel": "self"}, {"href": "http://localhost/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/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/7f9ac55f-48fa-4efd-bf06-28a8567958f1 {} -GOT:{'uuid': '7f9ac55f-48fa-4efd-bf06-28a8567958f1', '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/7f9ac55f-48fa-4efd-bf06-28a8567958f1', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f9ac55f-48fa-4efd-bf06-28a8567958f1/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': 'ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f', '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 +X-Openstack-Ironic-Api-Version: 1.5 + +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f -Openstack-Request-Id: req-20c7acc4-6f20-4ba0-b355-85cdc8aab396 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f", "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/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f", "rel": "self"}, {"href": "http://localhost/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/ports", "rel": "self"}, {"href": "http://localhost/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/volume", "rel": "self"}, {"href": "http://localhost/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/states", "rel": "self"}, {"href": "http://localhost/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/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/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f {} -GOT:{'uuid': 'ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f', '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/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ebf4def7-3d8a-46a5-9a3c-ba82a1ec471f/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': '01acbd09-a54a-450c-b087-a4404dddbab6', '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 +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +DELETE: /v1/nodes/node-39/traits/CUSTOM_1 +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/nodes/01acbd09-a54a-450c-b087-a4404dddbab6 -Openstack-Request-Id: req-f4026652-be76-4e00-879e-64ead399de22 +Openstack-Request-Id: req-1790a40c-fd81-453e-b983-5c6451d3a730 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.40 -{"uuid": "01acbd09-a54a-450c-b087-a4404dddbab6", "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/01acbd09-a54a-450c-b087-a4404dddbab6", "rel": "self"}, {"href": "http://localhost/nodes/01acbd09-a54a-450c-b087-a4404dddbab6", "rel": "bookmark"}], "ports": [{"href": "http://localhost/v1/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/ports", "rel": "self"}, {"href": "http://localhost/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/ports", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/volume", "rel": "self"}, {"href": "http://localhost/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/volume", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/states", "rel": "self"}, {"href": "http://localhost/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/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/01acbd09-a54a-450c-b087-a4404dddbab6 {}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_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_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_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_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_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.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_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_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_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.TestPost.test_create_port_vif_nopxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_noportgroup ... ok +X-Openstack-Ironic-Api-Version: 1.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_port.TestListPorts.test_one +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait_fails_with_bad_version ... ok +ironic.tests.unit.api.controllers.v1.test_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.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.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_notification_utils.APINotifyTestCase.test_portgroup_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_portgroup_notification ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_add_root_non_existent +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent ... ok +ironic.tests.unit.api.controllers.v1.test_node.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.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_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_sort_key_invalid +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid ... 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_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 -GOT:{'uuid': '01acbd09-a54a-450c-b087-a4404dddbab6', '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/01acbd09-a54a-450c-b087-a4404dddbab6', 'rel': 'self'}, {'href': 'http://localhost/nodes/01acbd09-a54a-450c-b087-a4404dddbab6', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/ports', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/volume', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/01acbd09-a54a-450c-b087-a4404dddbab6/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': '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'} +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-c741c28f-e96e-46c1-ae65-4ef04ff0589d +Openstack-Request-Id: req-7e2a257d-aa13-493c-bc30-8a7ea5bcc253 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.32 +X-Openstack-Ironic-Api-Version: 1.1 {"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 +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-80201df5-0654-4ba9-85af-58c91a76e3ef +Openstack-Request-Id: req-fc028333-808c-4e9c-8513-faa98fd855c9 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": "2020-08-18T08:12:24.614710+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': {'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': '2020-08-18T08:12:24.614710+00:00'} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:{'foo': 'bar'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:{'foo': 'bar'} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} +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-6bd30493-e037-4ee3-a6e4-74e46548c0db +Openstack-Request-Id: req-da686f6c-b057-4a7c-9840-45b8201df430 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}"} -POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/test {'foo': 'bar'} -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.17 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"adopt\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manageable'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-9fe57716-7675-4ead-bb70-02edb5ee120f +Openstack-Request-Id: req-71564362-eb03-4e5a-a4ef-6e4dc65ef34d 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': 'adopt'} +{"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 on', 'timeout': 0} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-18d8ae09-3001-48a3-85f8-2dbdc4df09b0 +Openstack-Request-Id: req-09bf0781-f6b7-4f67-8fb3-af267408514f 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_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_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_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_port.TestListPorts.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single ... ok - +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': 'soft power off', 'timeout': 0} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-f0124f4b-2b40-4567-8b6b-1b05c4306c8c +Openstack-Request-Id: req-cc4ccb1c-ff48-4025-8dda-bc584bed92b4 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.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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 +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-b8e1e184-ae9d-40fe-a74d-a4afd3a81aef +Openstack-Request-Id: req-af65b0a6-bfb0-49be-a6ec-2dfc8cbe34d7 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}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test {'test_key': 'test_value'} +{"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-8419c542-9716-4adf-ba3a-12edc07e7217 +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 Content-Type: application/json -Openstack-Request-Id: req-e72375f2-db5a-47c8-a12b-8400b0787d95 +Openstack-Request-Id: req-df1558c6-7e22-40a3-93dc-4f82cebe6cba 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/provision {'target': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} +{"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': 'unrescue'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-6c9f0320-3846-4331-9b4d-19ccd5ad1fd5 +Openstack-Request-Id: req-25b54421-1188-44fe-9822-d9c0ee789e50 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.38 -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-7a527434-ef44-4cab-a47d-d1c34c0003d0 +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-dae110e6-2aab-4f28-92b6-68ab8da4970f 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 off'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-0ddde1e0-0920-4577-ae89-1c3c0a4783e5 +X-Openstack-Ironic-Api-Version: 1.38 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-8bf6a109-59ab-4226-bc11-14823920e44f 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'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.38 + +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-26efa932-3e16-423a-bbcf-08e34b9d14e8 +Openstack-Request-Id: req-8f50a454-b4c4-4b5f-85c6-6e5f18eb6934 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/power {'target': 'power on'} +X-Openstack-Ironic-Api-Version: 1.5 +{"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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-754f1b61-c493-41ac-922c-0706126d6447 +Location: http://localhost/v1/nodes/node-39/states/console +Openstack-Request-Id: req-fba3f80e-1bfe-4db1-9858-8304ea27ba5b 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 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'not-supported'} +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/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-51879902-36b2-4acf-a840-8177c6a88650 +Openstack-Request-Id: req-fecd1de4-2a7a-4942-a85c-c5aca803ad33 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': 'rescue'} +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}"}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_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 + GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-063bbc4b-30a7-499e-8c93-69dc185e8934 +Openstack-Request-Id: req-e49dfefc-288b-47dd-9ec3-a2a5acb76303 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': 'active', 'rescue_password': 'password'} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Adding a config drive is only supported when setting provision state to active\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-ad34cc57-78d0-4547-8431-9144bb43f278 +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/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-9d4db080-d6c3-491e-be7a-1696bf47a5b3 +Openstack-Request-Id: req-83ad4d59-f4ec-4b47-bf8e-79068ec706b8 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': 'deleted'} +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/states/console {'enabled': 'true'} GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-037ee991-de19-4c82-9540-5e4ccdefe951 +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console +Openstack-Request-Id: req-2f1325d9-7748-456d-8389-f2c049e969e9 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'} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance {} GOT:Response: 202 Accepted -Openstack-Request-Id: req-ef17bab7-ecf6-495a-87ed-599d2039c687 +Openstack-Request-Id: req-339439be-f4a2-47a3-9595-6e5758a1a36c 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 -PUT: /v1/nodes/node-39/maintenance {} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-3ef79b05-6c8d-4397-8ea8-3ac156d3fe84 +DELETE: /v1/nodes/node-39/traits +GOT:Response: 204 No Content +Openstack-Request-Id: req-8c439e5e-3d19-4a77-83a7-dadc3436122a 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/node-39/traits {} -GOT:Response: 400 Bad Request +GET: /v1/nodes/badname/traits {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-b85da2c7-ad78-4242-9506-95c424317e59 +Openstack-Request-Id: req-5d58457f-4f81-4d71-a887-4002b46eacea 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/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': '2020-08-18T08:12:26.817743+00:00', 'updated_at': None}]} -GET: /v1/ports?detail=True&fields=name {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node badname could not be found.\", \"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-47538331-8f0b-488c-bdb0-c3decec57e3e +Openstack-Request-Id: req-767b7825-6492-438c-85ba-8a809f455d0f 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'}]}]}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_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_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_valid_timeout_valid_soft_ver ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_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_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.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.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ... ok +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 {'traits': ['CUSTOM_3']} +GOT:Response: 204 No Content +Openstack-Request-Id: req-d085ac80-764b-4998-a229-190b6dbe3de2 +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?address=invalid-mac-format {} +GET: /v1/ports/detail?sort_key=pxe_enabled {} +GOT:{'ports': [{'uuid': 'a69a2b98-9dd6-4b56-8b11-eeb2feea60ed', '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/a69a2b98-9dd6-4b56-8b11-eeb2feea60ed', 'rel': 'self'}, {'href': 'http://localhost/ports/a69a2b98-9dd6-4b56-8b11-eeb2feea60ed', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:56:39.057580+00:00', 'updated_at': None}, {'uuid': '905de4c6-93e9-46b7-b506-131efaf3dcd7', '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/905de4c6-93e9-46b7-b506-131efaf3dcd7', 'rel': 'self'}, {'href': 'http://localhost/ports/905de4c6-93e9-46b7-b506-131efaf3dcd7', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:56:39.137627+00:00', 'updated_at': None}]} +GET: /v1/ports?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8ddb4027-4701-41b4-8fee-72fafb3e9c7c +Openstack-Request-Id: req-eb6e08ea-bce0-4e89-b64a-cde02839c9d9 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] +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=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} +GOT:{'ports': [], 'next': {}, 'created_at': {}, 'updated_at': {}} +GET: /v1/ports {} +GOT:{'ports': []} +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-a4e13f0b-2023-4be0-9beb-d3c6665b1ddf +Openstack-Request-Id: req-bbb7fce7-df78-4d1b-916a-19ffd7443b5c 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': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] -GOT:Response: 409 Conflict -Content-Type: application/json -Openstack-Request-Id: req-a5d5d7c9-4013-48a5-88b9-ed0e8c613610 -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': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] +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'}]} +PATCH: /v1/ports/0f352e0e-bb3a-4def-95ca-7ed6ba7f4ba3 [{'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-d266291d-2224-4356-91ba-21c76da4b6a1 +Openstack-Request-Id: req-b7055efd-4c86-4eb1-8d82-deb6fea3096a 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": "2020-08-18T08:12:25.402527+00:00", "updated_at": "2020-08-18T08:12:25.654502+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "0f352e0e-bb3a-4def-95ca-7ed6ba7f4ba3", "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/0f352e0e-bb3a-4def-95ca-7ed6ba7f4ba3", "rel": "self"}, {"href": "http://localhost/ports/0f352e0e-bb3a-4def-95ca-7ed6ba7f4ba3", "rel": "bookmark"}], "created_at": "2021-09-20T14:56:47.204150+00:00", "updated_at": "2021-09-20T14:56:48.328417+00:00"} +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-5a3fc94a-1686-4bf0-b702-2257ff662f5b +Openstack-Request-Id: req-c8ef80ac-0242-4337-90d3-a804883e5eb3 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.34 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '47c221b8-2233-4dcf-8da8-d2b50de323b2', 'op': 'remove'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-14575541-cdc2-4c32-87e1-f3e7dea84c7a -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": "2020-08-18T08:12:26.202310+00:00", "updated_at": null} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-b8386a7f-11ea-47cb-ab3c-ffaccc22481c -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": "2020-08-18T08:12:26.556961+00:00", "updated_at": "2020-08-18T08:12:26.827542+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-f6df8616-5f7d-40f8-ba46-f1e474ee4f1e +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}]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_physical_network_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_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.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.TestDelete.test_portgroups_subresource_delete +ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits ... 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 + +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-632d56c5-cdb5-4462-adb7-d296b9753a0b 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": "2020-08-18T08:12:27.063451+00:00", "updated_at": "2020-08-18T08:12:27.225529+00:00"} -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'b5d9638c-1d4e-4343-9977-c9e4bb8be54b'}, '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 + +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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-f4ae53a9-e88a-40b3-b246-6bb22781fe15 +Openstack-Request-Id: req-56017807-2382-4474-805d-04db907b33a6 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": "b5d9638c-1d4e-4343-9977-c9e4bb8be54b"}, "internal_info": {"tenant_vif_port_id": "b5d9638c-1d4e-4343-9977-c9e4bb8be54b"}, "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": "2020-08-18T08:12:27.597240+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': '0409d451-eb35-402f-a50c-96fc280e8656'}, '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 +X-Openstack-Ironic-Api-Version: 1.12 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-698cd877-4fd2-47d1-9f21-165ae5d03e7a +Openstack-Request-Id: req-c9e6b2b9-bcc3-4765-9db9-47659d6f2347 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": "0409d451-eb35-402f-a50c-96fc280e8656"}, "internal_info": {"tenant_vif_port_id": "0409d451-eb35-402f-a50c-96fc280e8656"}, "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": "2020-08-18T08:12:27.900133+00:00", "updated_at": null}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_nostandalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_portgroup_nostandalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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.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.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_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_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_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_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_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_detail -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_root_non_existent ... ok -ironic.tests.unit.api.controllers.v1.test_node.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 - +X-Openstack-Ironic-Api-Version: 1.12 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"foo\", \"debuginfo\": null}"} 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-2fef50ed-f4fe-49f1-8a75-4966132f8886 +GOT:Response: 204 No Content +Openstack-Request-Id: req-68433d1c-5791-4b71-aa6c-ebfab633c425 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': 'invalid-value'} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-b07233c2-61fa-4c2a-8a75-009772027845 + +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-1b77acf4-c3f9-49c1-b7cf-0a51afda9f1b 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 -GOT:Response: 204 No Content -Openstack-Request-Id: req-3bed2e20-a10c-4095-8218-6ade2897f305 + +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-4019d33c-619c-4133-9663-2392c44a0549 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}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {} GOT:{'traits': ['CUSTOM_1', 'CUSTOM_2']} -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} +DELETE: /v1/ports/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d377604f-2c5a-412d-ae39-bf1df819fc98 +Openstack-Request-Id: req-e77a37c7-5053-43bb-ba1c-0dd442ab0b0a 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}"} +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?node=test-node {} -GOT:{'ports': [{'uuid': 'bd7b8a94-3f5f-436d-a738-296a652d9fde', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/bd7b8a94-3f5f-436d-a738-296a652d9fde', 'rel': 'self'}, {'href': 'http://localhost/ports/bd7b8a94-3f5f-436d-a738-296a652d9fde', 'rel': 'bookmark'}]}, {'uuid': '8a1c1d1a-6097-495d-9707-55d8d0db5239', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/8a1c1d1a-6097-495d-9707-55d8d0db5239', 'rel': 'self'}, {'href': 'http://localhost/ports/8a1c1d1a-6097-495d-9707-55d8d0db5239', 'rel': 'bookmark'}]}, {'uuid': '8024a59f-093f-4813-86ca-add78104374f', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/8024a59f-093f-4813-86ca-add78104374f', 'rel': 'self'}, {'href': 'http://localhost/ports/8024a59f-093f-4813-86ca-add78104374f', 'rel': 'bookmark'}]}]} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} -GOT:Response: 406 Not Acceptable +GOT:{'ports': [{'uuid': 'f0583fea-312a-46d0-81a8-faeeed1cbbca', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/f0583fea-312a-46d0-81a8-faeeed1cbbca', 'rel': 'self'}, {'href': 'http://localhost/ports/f0583fea-312a-46d0-81a8-faeeed1cbbca', 'rel': 'bookmark'}]}, {'uuid': '59b43565-73f4-48f2-bff6-39413e30cdf8', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/59b43565-73f4-48f2-bff6-39413e30cdf8', 'rel': 'self'}, {'href': 'http://localhost/ports/59b43565-73f4-48f2-bff6-39413e30cdf8', 'rel': 'bookmark'}]}, {'uuid': 'a4c83a37-2c2c-4f83-b2d4-e3f69df90796', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/a4c83a37-2c2c-4f83-b2d4-e3f69df90796', 'rel': 'self'}, {'href': 'http://localhost/ports/a4c83a37-2c2c-4f83-b2d4-e3f69df90796', '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': {}, '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-09-20T14:56:41.976980+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-09-20T14:56:41.976980+00:00', 'updated_at': None} +GET: /v1/ports?address=invalid-mac-format {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c37cdaca-cf2e-43bc-b339-37512e961411 +Openstack-Request-Id: req-7cecc897-727a-45ac-a0af-f506209fa548 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 {} +{"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/ports?sort_key=pxe_enabled {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-84d0b9e4-6814-44ad-b6e1-77f5555459df +Openstack-Request-Id: req-ef56f557-db72-4bd2-b9e4-c2aa1847c334 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.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=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/detail {} -GOT:{'ports': [{'uuid': 'bec2dd55-540e-4915-9daa-dadd26043946', 'address': '66:44:55:33:11:22', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/bec2dd55-540e-4915-9daa-dadd26043946', 'rel': 'self'}, {'href': 'http://localhost/ports/bec2dd55-540e-4915-9daa-dadd26043946', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:26.908951+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-76e50eb3-978e-4d52-90f6-6b73476d2eea +Openstack-Request-Id: req-2c5c044b-234d-47d7-8f17-e4804cd56a90 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": "2020-08-18T08:12:27.152636+00:00", "updated_at": "2020-08-18T08:12:27.331514+00:00"} +{"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-09-20T14:56:46.506356+00:00", "updated_at": "2021-09-20T14:56:47.564392+00:00"} 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-be54bef9-ebd3-4c45-bde0-4d7fb691bc11 +Openstack-Request-Id: req-188b7669-54f5-498a-b8cc-198105aee300 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/ddfb3aab-fa22-419b-a84c-c6468b0bdd85 [{'path': '/extra/vif_port_id', 'op': 'remove'}] -GOT:Response: 200 OK +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-9b1c5426-1362-4f95-a3f8-9c3cec2c1e46 +Openstack-Request-Id: req-5613f346-3db9-411a-a996-675f3186a17f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 -{"uuid": "ddfb3aab-fa22-419b-a84c-c6468b0bdd85", "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/ddfb3aab-fa22-419b-a84c-c6468b0bdd85", "rel": "self"}, {"href": "http://localhost/ports/ddfb3aab-fa22-419b-a84c-c6468b0bdd85", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:27.911353+00:00", "updated_at": "2020-08-18T08:12:28.088970+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 +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': '/local_link_connection/switch_id', 'op': 'remove'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-c94cb08d-4654-4b74-86a5-e4894a7d9ec1 +Openstack-Request-Id: req-a0127515-06f4-4c96-9722-41084577d3e7 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": "2020-08-18T08:12:28.294383+00:00", "updated_at": "2020-08-18T08:12:28.453976+00:00"}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_non_existent_node_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_non_existent_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ... ok +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_old_api ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent ... ok +ironic.tests.unit.api.controllers.v1.test_port.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.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_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_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.TestPut.test_set_node_maintenance_mode_error +ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_error ... 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-2c432816-f15c-47f6-9310-fd1e2dbb932c +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/node-39/states +Openstack-Request-Id: req-b63d0675-a40b-4a24-9352-1bbf54648dfe 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}"} -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 + +PUT: /v1/nodes/node-39/states/power {'target': 'power on'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-94fdc5e3-aacb-4657-9f44-c7e2017ae1e7 +Openstack-Request-Id: req-23635447-c223-4655-92c1-21e23ebe7320 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}"} -DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test -GOT:Response: 202 Accepted +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node node-39 could not be found.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on', 'timeout': 2} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-d04e8a60-3ff3-4e14-a858-2f914c5f50c8 +Openstack-Request-Id: req-c708a3d3-0044-4e52-84b7-5b25b46ede3a 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/provision {'target': 'adopt'} +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-028af6c7-ff61-4baf-999a-3e3fb805fa09 +Openstack-Request-Id: req-532bb240-3749-4570-b10e-bcaabb966e6f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.16 +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': 'clean', 'clean_steps': [{'step': 'upgrade_firmware', 'interface': 'deploy'}]} +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-10c1f745-b594-468c-a1ec-65cabace247e +Openstack-Request-Id: req-c1447b83-ddfa-42d5-8cdd-381520154260 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': 'inspect'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.27 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-f1092ba6-2da7-459b-b9d9-0ab6f1e14fed +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': 'unrescue'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-f27c6868-85b8-462e-9d5a-26c896263318 +Openstack-Request-Id: req-252ed530-b218-4e6c-b268-060e1d910d55 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/node-39/states/power {'target': 'power on'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/node-39/states -Openstack-Request-Id: req-707e103c-a30e-4118-a160-7bb9d10867e1 +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-d04de02f-2572-4414-834e-0ad9489956c5 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/states/power {'target': 'power on'} -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.38 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-94f7e5ba-de8d-448b-b448-867713caad78 +Openstack-Request-Id: req-23d1a37b-291a-4f22-bb34-63051d20620a 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'} +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-f0cdcf84-2029-48a1-bef1-d9589b1beb40 +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 +Content-Type: application/json +Openstack-Request-Id: req-6846cd0d-0e8a-4ff1-bb51-ba937c09ca82 +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': 'active', 'configdrive': 'foo'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-c5d3897f-501a-4c39-91dd-52d96facede3 +Openstack-Request-Id: req-25a0d657-907b-4658-bb4e-7f000a390775 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.1 -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': ' '} +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-7778c387-012c-4d5a-a319-3676b32f52fc +Openstack-Request-Id: req-cb1974ca-8612-40dd-8874-d44b87f095a6 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/console {'enabled': 'false'} +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-e9a43e7b-46d1-4826-b927-197e9e8d948f +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/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -Openstack-Request-Id: req-0f517942-d3c1-4a0a-9020-4d1f1630f92e +Openstack-Request-Id: req-a8cf43e5-78f7-402c-8fa7-04c51b91ea78 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'} +PUT: /v1/nodes/node-39/maintenance {'reason': 'fake_reason'} GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console -Openstack-Request-Id: req-95cc93f2-8fd4-475b-a307-4f47acad59c2 +Openstack-Request-Id: req-f26f8076-a497-4f04-8485-1d35b68612df 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 PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-72dd36c2-eb23-4e04-a829-135a4418c73b +Openstack-Request-Id: req-85cbafcb-1235-483b-b513-761ad7ffbcf6 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}"} -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 "} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail {} +DELETE: /v1/nodes/node-39/traits/CUSTOM_12 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0cd5801e-acee-409a-a85e-f708990e83ac +Openstack-Request-Id: req-498c763d-8c0b-46d1-8693-43715052cf6a 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?sort_key=pxe_enabled {} -GOT:{'ports': [{'uuid': '2463f0df-f21f-48fa-83ea-99262c7e7ffc', '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/2463f0df-f21f-48fa-83ea-99262c7e7ffc', 'rel': 'self'}, {'href': 'http://localhost/ports/2463f0df-f21f-48fa-83ea-99262c7e7ffc', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:28.138444+00:00', 'updated_at': None}, {'uuid': 'e6d27bce-933b-402c-8f8f-9e780192fc12', '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/e6d27bce-933b-402c-8f8f-9e780192fc12', 'rel': 'self'}, {'href': 'http://localhost/ports/e6d27bce-933b-402c-8f8f-9e780192fc12', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:28.153062+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': '2020-08-18T08:12:28.511413+00:00', 'updated_at': None}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 +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}"}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_port.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_get_all_by_portgroup_uuid_older_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_older_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_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_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.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow +ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_node.TestTraits.test_no_add_single_trait_via_body_2 +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_no_add_single_trait_via_body_2 ... ok +ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_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_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network_upgrade ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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_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_portgroups_subresource_patch -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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_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.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_singular ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query_false ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_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_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_update_not_found -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ... 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_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.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_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_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_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_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_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_port.TestListPorts.test_list_with_deleted_node +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_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_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.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.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.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.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.TestPatch.test_remove_node_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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.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.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_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_get_all_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_portgroup.TestListPortgroups.test_get_one -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_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_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.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_portgroup.TestListPortgroups.test_get_one_with_json_in_name -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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.TestPatch.test_remove_mandatory_field -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field ... ok -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'ec83f1ab-1e5d-46b4-a5f2-76fe890a5641'}, '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 +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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-c5b8bd90-f75c-41b9-aa14-16ab530f2876 +Openstack-Request-Id: req-53b569f1-8bd8-4a17-a09c-a48068c8ee23 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": "ec83f1ab-1e5d-46b4-a5f2-76fe890a5641"}, "internal_info": {"tenant_vif_port_id": "ec83f1ab-1e5d-46b4-a5f2-76fe890a5641"}, "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": "2020-08-18T08:12:27.616444+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': '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 +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/do_test +GOT:Response: 202 Accepted Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-61c31c77-107d-4276-bcd7-6ec94fe1b4f3 +Openstack-Request-Id: req-e9a680e5-70c4-47eb-9899-d9564c35a517 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": "2020-08-18T08:12:28.095085+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': 'physnet1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.1 +null +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-4c1cb4c0-1b10-48a0-ab96-76d00dd6d30c +Openstack-Request-Id: req-2b4b66a6-05d7-4ece-a382-f565a704ae73 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/blah -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.15 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"bad\", \"debuginfo\": null}"} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'not-supported'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9645d952-4679-400a-bd97-89261be65cf1 +Openstack-Request-Id: req-1a33a468-2c4b-456a-b3e5-1d2b253bc4d7 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}"} -DELETE: /v1/portgroups/pg.1.json -GOT:Response: 204 No Content -Openstack-Request-Id: req-d7b34095-6423-4b23-8499-c1d5504ddb4b +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/states/power {'target': 'power on', 'timeout': 0} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-d1a76b9e-f2d7-409d-9f40-5826498f5a1b 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 +{"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-67e13e06-c37d-4b01-a816-631fc7114306 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.27 -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': '2020-08-18T08:12:29.114381+00:00', 'updated_at': None}]} -GET: /v1/portgroups/detail?sort_key=mode {} -GOT:{'portgroups': [{'uuid': 'd284a6a9-1351-4871-beee-6d9be514d864', '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/d284a6a9-1351-4871-beee-6d9be514d864', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d284a6a9-1351-4871-beee-6d9be514d864', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_1', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/d284a6a9-1351-4871-beee-6d9be514d864/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d284a6a9-1351-4871-beee-6d9be514d864/ports', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:29.401713+00:00', 'updated_at': None}, {'uuid': '25b267f5-3655-41a1-96c4-162362ce18a2', '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/25b267f5-3655-41a1-96c4-162362ce18a2', 'rel': 'self'}, {'href': 'http://localhost/portgroups/25b267f5-3655-41a1-96c4-162362ce18a2', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_2', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/25b267f5-3655-41a1-96c4-162362ce18a2/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/25b267f5-3655-41a1-96c4-162362ce18a2/ports', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:29.396021+00:00', 'updated_at': None}, {'uuid': 'c7e27994-93a5-4668-bd9d-18e003b3f00a', '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/c7e27994-93a5-4668-bd9d-18e003b3f00a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c7e27994-93a5-4668-bd9d-18e003b3f00a', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_3', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/c7e27994-93a5-4668-bd9d-18e003b3f00a/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c7e27994-93a5-4668-bd9d-18e003b3f00a/ports', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:29.390219+00:00', 'updated_at': None}]} -GET: /v1/portgroups {} +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-72bb2ae3-6138-46e3-8b63-3ac53a29a5de +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'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-0b956f10-2b46-44d6-8ef6-2e0bb2fe426c +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/states/provision {'target': 'active'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-3b607c19-205d-4476-bd0d-c28ed7a0d0ea +Openstack-Request-Id: req-7bf2f55b-3aaf-426e-9805-54ff4e7cd9e9 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/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 +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': 'rescue', 'rescue_password': ' '} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-570ffbe6-2cd9-4e0d-a6b5-4561fa845be8 +Openstack-Request-Id: req-b61546a4-45c5-463b-8c83-82a00371fd15 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": "2020-08-18T08:12:29.912988+00:00", "updated_at": null}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_no_mandatory_field_node_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_mandatory_field_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_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_min_api_version -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_min_api_version ... ok - +X-Openstack-Ironic-Api-Version: 1.38 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty \\\"rescue_password\\\" is required when setting target provision state to rescue\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-b70cad27-f8c1-4e4a-a97f-fc5ff5c56f22 +Openstack-Request-Id: req-77976dd5-bdd0-4307-ad7e-a69453464975 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -9553,7 +9400,7 @@ 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-8ef8c005-e7ef-4fb2-b90d-27f727fd5d22 +Openstack-Request-Id: req-708a37e7-d71f-4561-ab73-f4c7bb27cb0a X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -9561,7 +9408,7 @@ 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-437389e0-39ad-4078-891a-544ecb953999 +Openstack-Request-Id: req-41f76f5a-874c-42bc-9d45-63a098b9d10f X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 @@ -9569,9674 +9416,8208 @@ 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-fd7eaefc-b128-49af-88f0-b109ac0bfa24 +Openstack-Request-Id: req-0b1b9f9b-040d-4e29-b4d8-4ef9d4e1ba42 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': 'unrescue'} -GOT:Response: 409 Conflict +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-c17c9a59-f5f1-4e93-8b81-f9466fa01376 +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 Content-Type: application/json -Openstack-Request-Id: req-a92fbd9a-589d-44e5-b4d7-0d8069317501 +Openstack-Request-Id: req-8c0d6271-f53b-43d6-b331-0fab969e3e4b 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'} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} +DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-fb2451e3-1132-4af4-bce2-baeab0d61109 +Openstack-Request-Id: req-ff72dab0-fa46-45ba-a04a-9d8b7d0bbe30 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.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 {'trait': 'CUSTOM_3'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0295c253-5065-44d1-878a-8c4d8fc218dc +Openstack-Request-Id: req-b9c64ede-3bda-45de-a30e-053457f3a61d 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.37 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No body should be provided when adding a trait\", \"debuginfo\": null}"}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 + +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-451f45d3-1b92-4bc7-8bb5-9c559d4a45e7 +Openstack-Request-Id: req-4112a268-196f-4111-acd3-e4b4f8a88e0d 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.34 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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-09-20T14:56:41.785866+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': '2021-09-20T14:56:43.370415+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-09-20T14:56:43.370415+00:00', 'updated_at': None} +GET: /v1/ports/af4044d0-b55a-4f82-8486-db1810cfb24b {} +GOT:{'uuid': 'af4044d0-b55a-4f82-8486-db1810cfb24b', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/af4044d0-b55a-4f82-8486-db1810cfb24b', 'rel': 'self'}, {'href': 'http://localhost/ports/af4044d0-b55a-4f82-8486-db1810cfb24b', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:56:45.608060+00:00', 'updated_at': None} +GET: /v1/ports/af4044d0-b55a-4f82-8486-db1810cfb24b {} +GOT:{'uuid': 'af4044d0-b55a-4f82-8486-db1810cfb24b', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/af4044d0-b55a-4f82-8486-db1810cfb24b', 'rel': 'self'}, {'href': 'http://localhost/ports/af4044d0-b55a-4f82-8486-db1810cfb24b', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:56:45.608060+00:00', 'updated_at': None} +GET: /ports/af4044d0-b55a-4f82-8486-db1810cfb24b {} +GOT:{'uuid': 'af4044d0-b55a-4f82-8486-db1810cfb24b', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/af4044d0-b55a-4f82-8486-db1810cfb24b', 'rel': 'self'}, {'href': 'http://localhost/ports/af4044d0-b55a-4f82-8486-db1810cfb24b', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:56:45.608060+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?sort_key=foo {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e2c91c61-c522-4e32-b7af-3530850dc0c8 +Openstack-Request-Id: req-af7b8641-792f-4be1-82ee-b026a914e8b2 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': 'rebuild', 'configdrive': 'foo'} +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 {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c8d97075-27ce-4c23-a2f0-cbd3f2547f0e +Openstack-Request-Id: req-b446dab3-7ae6-484e-842b-c87e6e50a2dc 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-740db976-e9b7-49c6-968f-285f14d559f3 +Openstack-Request-Id: req-2e6465db-daa7-431c-8715-89fdd04fff9e 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\": \"Request not acceptable.\", \"debuginfo\": null}"} -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.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 {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ca4cdfb6-5ddf-4239-b068-efc9161662a6 +Openstack-Request-Id: req-87849aed-4d6f-475c-bd5c-873a16b0e760 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device?persistent=True {'boot_device': 'pxe'} -GOT:Response: 204 No Content -Openstack-Request-Id: req-e93a8ede-e960-43d1-a29c-608fd2af0a4f +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/ebaa1a52-f11a-4fa4-81b6-7fd5c6622a7c [{'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-b118c7b3-905c-4c62-8bff-4d36e9adfb40 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=blah {'boot_device': 'pxe'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "ebaa1a52-f11a-4fa4-81b6-7fd5c6622a7c", "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/ebaa1a52-f11a-4fa4-81b6-7fd5c6622a7c", "rel": "self"}, {"href": "http://localhost/ports/ebaa1a52-f11a-4fa4-81b6-7fd5c6622a7c", "rel": "bookmark"}], "created_at": "2021-09-20T14:56:52.536553+00:00", "updated_at": "2021-09-20T14:56:53.834826+00:00"} +PATCH: /v1/ports/0d0065e7-a81c-400f-b14f-a8e95f5f6220 [{'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-005ee6e4-3ed8-433d-80f4-ed48d937a3db +Openstack-Request-Id: req-7ebf1f65-1b4e-40ef-9bee-ea4149ad5b0e 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}"} -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-6616161b-b338-421c-b465-1463399577aa +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "0d0065e7-a81c-400f-b14f-a8e95f5f6220", "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/0d0065e7-a81c-400f-b14f-a8e95f5f6220", "rel": "self"}, {"href": "http://localhost/ports/0d0065e7-a81c-400f-b14f-a8e95f5f6220", "rel": "bookmark"}], "created_at": "2021-09-20T14:56:55.200529+00:00", "updated_at": "2021-09-20T14:56:56.425027+00:00"} +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-6b4c7ee3-b583-452a-9337-87ed79f2f58e 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 +{"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-09-20T14:56:57.667035+00:00", "updated_at": "2021-09-20T14:56:58.785438+00:00"}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_portgroups_subresource_patch +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_portgroups_subresource_patch ... ok +ironic.tests.unit.api.controllers.v1.test_node.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_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_detail_against_single +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single ... 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_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.TestListPorts.test_sort_key +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key ... 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.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.TestListPorts.test_many +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets ... ok +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification +ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification ... ok +ironic.tests.unit.api.controllers.v1.test_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.TestPatch.test_remove_physical_network +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_mandatory_field ... 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.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_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.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.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.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_collection_links +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ... ok -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 "} -DELETE: /v1/nodes/node-39/traits/CUSTOM_1 -GOT:Response: 409 Conflict +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-a69b4df1-05b7-4755-995e-41b0bce24010 +Openstack-Request-Id: req-cfa9544e-12e0-4cdd-b0d7-3d0f86b3438c 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}"} -DELETE: /v1/nodes/node-39/traits/CUSTOM_1 -GOT:Response: 404 Not Found +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-ee3c1937-b1d5-470d-9ca5-6d3304673c9a +Openstack-Request-Id: req-2a35a89c-f17b-4a8f-98ea-c378b1cd3b4a 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}"}ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_node.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_notification_utils.APINotifyTestCase.test_emit_maintenance_notification -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_emit_maintenance_notification ... ok -ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_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.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi ... ok - -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 {} +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': 2} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6790e694-69fa-4220-9ac3-055429dcfeb5 +Openstack-Request-Id: req-a727009e-d195-4681-8e94-2219bfed7366 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 +X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', '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': '2020-08-18T08:12:26.850479+00:00', 'updated_at': None} -GET: /v1/portgroups/123 123/ports {} +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue'} 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/ports?sort_key=pxe_enabled {} -GOT:{'ports': [{'uuid': 'ce85dc6b-922c-43c3-93af-92ea304f7490', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/ce85dc6b-922c-43c3-93af-92ea304f7490', 'rel': 'self'}, {'href': 'http://localhost/ports/ce85dc6b-922c-43c3-93af-92ea304f7490', 'rel': 'bookmark'}]}, {'uuid': '6f2b5f8d-2768-4a86-8529-9f9c173f19ab', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/6f2b5f8d-2768-4a86-8529-9f9c173f19ab', 'rel': 'self'}, {'href': 'http://localhost/ports/6f2b5f8d-2768-4a86-8529-9f9c173f19ab', 'rel': 'bookmark'}]}]} -PATCH: /v1/ports/5e8d3498-8561-4824-a527-ac4fc1e3fefd [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +Openstack-Request-Id: req-ab4888f9-9b22-4180-8694-5bd1f939b2b3 +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': 'rebuild', 'configdrive': 'foo'} +GOT:Response: 202 Accepted +Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states +Openstack-Request-Id: req-08db3b09-f22f-463e-b010-13a6389ffcb8 +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/management/boot_device {'boot_device': 'pxe'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5476c188-9bd3-4000-a679-3e68bff9bc69 +Openstack-Request-Id: req-ec9b5ef4-e47b-4b20-afe2-1e83c3736c0e X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 -{"uuid": "5e8d3498-8561-4824-a527-ac4fc1e3fefd", "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/5e8d3498-8561-4824-a527-ac4fc1e3fefd", "rel": "self"}, {"href": "http://localhost/ports/5e8d3498-8561-4824-a527-ac4fc1e3fefd", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:27.812440+00:00", "updated_at": "2020-08-18T08:12:27.995684+00:00"} -PATCH: /v1/ports/3d94d094-057d-4fc4-a62e-457a27bef9c9 [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +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/states/console {'enabled': 'true'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-7d73da56-d6a9-4052-b42b-3243bafa5c93 +Openstack-Request-Id: req-981816a0-45ee-4cd1-b83d-673f2a3c8342 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "3d94d094-057d-4fc4-a62e-457a27bef9c9", "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/3d94d094-057d-4fc4-a62e-457a27bef9c9", "rel": "self"}, {"href": "http://localhost/ports/3d94d094-057d-4fc4-a62e-457a27bef9c9", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:28.228966+00:00", "updated_at": "2020-08-18T08:12:28.362519+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +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': 'true'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d156eec9-1a61-4bf7-93b2-2b288df172a6 +Openstack-Request-Id: req-2c05f02f-3be1-4e74-bc83-e8accd162956 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/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/cb759a1a-bbc1-458d-ba7e-4043e034d65a [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] -GOT:Response: 403 Forbidden +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support console (disabled or not implemented).\", \"debuginfo\": null}"} +PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} +GOT:Response: 204 No Content +Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 +Openstack-Request-Id: req-931978bb-404a-47a9-8dc2-24b3efa84119 +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/node-39/traits/CUSTOM_3 {} +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-a99c9b3d-70ea-4fe0-a964-40972e100dc8 +Openstack-Request-Id: req-a2bc0a99-6583-4646-88a6-f89e23ea0998 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/29ec33b0-f942-4d0b-beb5-952bfedbbf28 [{'path': '/extra/vif_port_id', 'op': 'remove'}] -GOT:Response: 200 OK +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-22696f0e-ecd5-4351-9aab-42f11b82228b +Openstack-Request-Id: req-e4a2c7a8-da37-4a2c-a895-b81ed5baee74 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.28 -{"uuid": "29ec33b0-f942-4d0b-beb5-952bfedbbf28", "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/29ec33b0-f942-4d0b-beb5-952bfedbbf28", "rel": "self"}, {"href": "http://localhost/ports/29ec33b0-f942-4d0b-beb5-952bfedbbf28", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:29.193513+00:00", "updated_at": "2020-08-18T08:12:29.329503+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] +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 +GOT:Response: 204 No Content +Openstack-Request-Id: req-ec0903c4-c30b-4787-a6d2-8b17a2d2f163 +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-54c4128e-172e-46b0-b600-00647a44251d +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/node-39/traits/CUSTOM_3 {'traits': ['CUSTOM_3']} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3787050e-0019-4d6a-8df5-45a00ee91536 +Openstack-Request-Id: req-c806a4b5-5654-4ca5-a553-b72c7cf71b1a 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: 406 Not Acceptable +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}"} +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-92d816b1-536b-44b6-a19d-2bef23fed535 +Openstack-Request-Id: req-0d9e61b8-e973-4b44-b018-7add48044d54 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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] -GOT:Response: 200 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4f6fb229-8bd6-4318-9b70-ef3f371e85eb +Openstack-Request-Id: req-124ad985-0390-4b7a-b13d-ddc54996b08c 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": "2020-08-18T08:12:29.987648+00:00", "updated_at": null}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_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_portgroup.TestPost.test_create_portgroup_valid_extra -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_valid_extra ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_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.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_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_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.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_address_invalid_format -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_address_invalid_format ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"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-09-20T14:57:02.930294+00:00', 'updated_at': None}]}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.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.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.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.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.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.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.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.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_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.TestPatch.test_replace_address_already_exist +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_address_already_exist ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_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_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 -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': '2020-08-18T08:12:27.788380+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 +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b19e3c64-578f-4d9c-bb03-758b8c7efdde +Openstack-Request-Id: req-6d44f576-9028-494d-a92d-badfe22bd738 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?sort_key=uuid {} -GOT:{'ports': [{'uuid': '0cf3d7d2-835c-4455-970a-2f3911485cf3', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/0cf3d7d2-835c-4455-970a-2f3911485cf3', 'rel': 'self'}, {'href': 'http://localhost/ports/0cf3d7d2-835c-4455-970a-2f3911485cf3', 'rel': 'bookmark'}]}, {'uuid': '52eecd72-4ada-4835-bf18-097909d34b00', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/52eecd72-4ada-4835-bf18-097909d34b00', 'rel': 'self'}, {'href': 'http://localhost/ports/52eecd72-4ada-4835-bf18-097909d34b00', 'rel': 'bookmark'}]}, {'uuid': 'a005e03d-61a7-4a21-b693-9d770382dacc', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/a005e03d-61a7-4a21-b693-9d770382dacc', 'rel': 'self'}, {'href': 'http://localhost/ports/a005e03d-61a7-4a21-b693-9d770382dacc', 'rel': 'bookmark'}]}]} -PATCH: /v1/ports/7db4cdeb-0219-4aa6-bea7-ccfae03b9bdd [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +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/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-f76dafac-c181-4c3d-842d-1317d4d52758 +Openstack-Request-Id: req-39240ea6-af91-4985-953e-6b4571dc0c49 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "7db4cdeb-0219-4aa6-bea7-ccfae03b9bdd", "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/7db4cdeb-0219-4aa6-bea7-ccfae03b9bdd", "rel": "self"}, {"href": "http://localhost/ports/7db4cdeb-0219-4aa6-bea7-ccfae03b9bdd", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:28.699643+00:00", "updated_at": "2020-08-18T08:12:28.943451+00:00"} -PATCH: /v1/ports/5b9c2727-7b51-49ff-93f8-00d22a54af9b [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.33 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1d17dbf7-0e35-4030-b1f9-19722b1a7581 +Openstack-Request-Id: req-f2ac31d4-f8bf-4148-9c1c-edaa0be3b2b5 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 5b9c2727-7b51-49ff-93f8-00d22a54af9b could not be found.\", \"debuginfo\": null}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} 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-5b555bed-4e3f-45f4-884b-56d586535bc5 +Openstack-Request-Id: req-fd8a1841-e169-40ac-9e0d-b1637387a77f 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": "2020-08-18T08:12:29.451502+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} +{"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-09-20T14:56:55.670340+00:00", "updated_at": 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'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-372a09cc-e1f5-4667-ab4c-8910910074ee +Location: http://localhost/v1/ports/5b3a02af-e724-4439-a462-ed0a90fde6ee +Openstack-Request-Id: req-ddf5c519-af4c-4d9d-bd36-ae2519f64a5c 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": "2020-08-18T08:12:29.922362+00:00", "updated_at": null} -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'} +{"uuid": "5b3a02af-e724-4439-a462-ed0a90fde6ee", "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/5b3a02af-e724-4439-a462-ed0a90fde6ee", "rel": "self"}, {"href": "http://localhost/ports/5b3a02af-e724-4439-a462-ed0a90fde6ee", "rel": "bookmark"}], "created_at": "2021-09-20T14:56:59.455907+00:00", "updated_at": null} +GET: /v1/ports/5b3a02af-e724-4439-a462-ed0a90fde6ee {} +GOT:{'uuid': '5b3a02af-e724-4439-a462-ed0a90fde6ee', '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/5b3a02af-e724-4439-a462-ed0a90fde6ee', 'rel': 'self'}, {'href': 'http://localhost/ports/5b3a02af-e724-4439-a462-ed0a90fde6ee', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:56:59.455907+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': '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-49e3b100-8091-476e-9802-428b9a960758 +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': 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-687c83be-0cca-4c7b-93a2-738edb58cba7 +Openstack-Request-Id: req-cb16cefa-52dd-49d3-8648-c30e05498ea2 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": "2020-08-18T08:12:30.253305+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': '2020-08-18T08:12:30.253305+00:00', 'updated_at': None} +{"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-09-20T14:57:04.648934+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: 500 Internal Server Error +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-3385f700-8d9d-42db-bdc8-3a6e2007807f +Openstack-Request-Id: req-abd82a58-b472-4d04-8c46-e5ef59d65624 +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': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': 'e7645b43-fdf3-4b85-a00c-2731ca3b4571'}, '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-290cbe27-d705-4706-a18e-31175c40ef38 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}"}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_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_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_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_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_invalid_physnet_non_text -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_non_text ... 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}"}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.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_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.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_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_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_update_port_address_normalized +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized ... ok -PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'active'} -GOT:Response: 400 Bad Request +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-a9a64394-495e-46f8-9f59-783d0421f27a +Openstack-Request-Id: req-3b2b3876-79bf-414c-8d6d-421836a47922 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'} +{"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-09-20T14:56:53.283182+00:00", "updated_at": "2021-09-20T14:56:54.692162+00:00"} +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-8e4a6543-e82e-486b-b406-83d61eaaba49 +Openstack-Request-Id: req-465b1670-04c0-4984-a368-bc31633a981d 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 +{"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': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-35a4e9cf-6b0f-4026-b2b5-f3574de7032c +Openstack-Request-Id: req-1c6f8c12-af04-4328-9b86-9aa0c7f0668e 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': 'active'} +{"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-09-20T14:56:57.465094+00:00", "updated_at": "2021-09-20T14:56:58.501995+00:00"} +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-a6d5e97d-5f3e-4938-aeb1-4d5917a804e0 +Openstack-Request-Id: req-37033d75-ed87-4e86-8b82-7b01b6fa76c0 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'} +{"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': 'invalid-format', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-e1e04b96-8541-49a2-8619-ea82e08cab57 +Openstack-Request-Id: req-d8c9b0c6-385f-496d-bf6b-6e964861bdd9 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'} +{"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-f5fcd24d-1597-4beb-b7f7-0b584302e41f +Openstack-Request-Id: req-9e60d5f6-2622-4b2f-a754-1d1f811f93de 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/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-025ec4d0-b591-45f9-b661-75773eeaacea +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': '0149a0e0-84c5-4ca5-a946-c4c7c3eec37c'}, '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-e5f6f1e2-67dd-4aa5-a8ee-0438990ad0e9 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': 0} -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": {"vif_port_id": "0149a0e0-84c5-4ca5-a946-c4c7c3eec37c"}, "internal_info": {"tenant_vif_port_id": "0149a0e0-84c5-4ca5-a946-c4c7c3eec37c"}, "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-09-20T14:57:06.012862+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': '6c456a2d-ddff-4d87-857f-07df221fd4b5'}, '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 -Openstack-Request-Id: req-7485b313-4ee1-4904-ab34-020ae52e69f6 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-7c50071c-1b69-4c95-b795-6bd9031ee0e2 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-278fc832-b88f-44d4-bdbe-801614949d0f +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "6c456a2d-ddff-4d87-857f-07df221fd4b5"}, "internal_info": {"tenant_vif_port_id": "6c456a2d-ddff-4d87-857f-07df221fd4b5"}, "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-09-20T14:57:08.180918+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': '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-53ea61a8-ca92-4e8c-8e51-30e6c90856b2 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\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_upgrade ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_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_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_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.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_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.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_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_port.TestListPorts.test_links_public_url +ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links_public_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-fd9141bb-e99b-49a6-a98b-0efa3471ed21 +PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT']} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-ad966915-ba23-4ba3-9630-d3d1b23f4a39 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': 'rebuild', 'configdrive': 'foo'} -GOT:Response: 202 Accepted -Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states -Openstack-Request-Id: req-bda0695e-8ac1-4784-9663-21c09f903135 +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/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/a5c80808-56c8-4f12-b6fd-beab4c15630a +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-2bc16b41-ff34-45f4-9e4b-99837eecb65c 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-17dfc171-823b-4ab6-8393-0ccb386148fe +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +GET: /v1/ports?detail=True {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-5ce90c4c-2ffe-45b6-8a88-c4df4a7cd30d 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: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"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-09-20T14:56:56.482171+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-09-20T14:56:56.482171+00:00', 'updated_at': None} +GET: /v1/ports {} +GOT:{'ports': []} +GET: /v1/ports {} +GOT:{'ports': [{'uuid': '72e72e58-8c15-4b7e-beb9-d1d2356adba2', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/72e72e58-8c15-4b7e-beb9-d1d2356adba2', 'rel': 'self'}, {'href': 'http://localhost/ports/72e72e58-8c15-4b7e-beb9-d1d2356adba2', 'rel': 'bookmark'}]}, {'uuid': '76c55d7b-69ab-408c-83fe-8af4229a3215', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/76c55d7b-69ab-408c-83fe-8af4229a3215', 'rel': 'self'}, {'href': 'http://localhost/ports/76c55d7b-69ab-408c-83fe-8af4229a3215', 'rel': 'bookmark'}]}, {'uuid': '174e020b-75b5-437d-9284-ec31384390f2', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/174e020b-75b5-437d-9284-ec31384390f2', 'rel': 'self'}, {'href': 'http://localhost/ports/174e020b-75b5-437d-9284-ec31384390f2', 'rel': 'bookmark'}]}, {'uuid': '4793785a-093d-434c-84f6-decd9d9f4cba', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/4793785a-093d-434c-84f6-decd9d9f4cba', 'rel': 'self'}, {'href': 'http://localhost/ports/4793785a-093d-434c-84f6-decd9d9f4cba', 'rel': 'bookmark'}]}, {'uuid': '6d33e989-0b01-4b44-b20e-d033655ea72a', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/6d33e989-0b01-4b44-b20e-d033655ea72a', 'rel': 'self'}, {'href': 'http://localhost/ports/6d33e989-0b01-4b44-b20e-d033655ea72a', 'rel': 'bookmark'}]}]} +PATCH: /v1/ports/65a6df8a-f251-4046-96a1-4db27e7a9aac [{'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-9c1cf581-b448-4264-a588-f2bcc19ade0d +Openstack-Request-Id: req-078dc9a1-49d0-40cb-aac3-09aa68575db6 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 +X-Openstack-Ironic-Api-Version: 1.34 +{"uuid": "65a6df8a-f251-4046-96a1-4db27e7a9aac", "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/65a6df8a-f251-4046-96a1-4db27e7a9aac", "rel": "self"}, {"href": "http://localhost/ports/65a6df8a-f251-4046-96a1-4db27e7a9aac", "rel": "bookmark"}], "created_at": "2021-09-20T14:57:03.595468+00:00", "updated_at": "2021-09-20T14:57:04.755354+00:00"} +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-607055c6-1fb4-4c4f-9e45-7b09e5aa2c19 +Openstack-Request-Id: req-ee4b3b3b-a7e0-4b76-9ec7-dea62d7aef85 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/provision {'target': 'unrescue'} -GOT:Response: 406 Not Acceptable +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-09-20T14:57:05.962345+00:00", "updated_at": "2021-09-20T14:57:07.018157+00:00"} +PATCH: /v1/ports/63ec3ecb-449b-4bf2-a4ca-2898fd60d04c [{'path': '/extra/vif_port_id', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-ffa0fa0f-05e2-488a-b12a-7ddaea2f9f5b +Openstack-Request-Id: req-93ffeebb-07ae-4f8e-8f44-e1b9c625d447 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_3 {} -GOT:Response: 409 Conflict +X-Openstack-Ironic-Api-Version: 1.28 +{"uuid": "63ec3ecb-449b-4bf2-a4ca-2898fd60d04c", "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/63ec3ecb-449b-4bf2-a4ca-2898fd60d04c", "rel": "self"}, {"href": "http://localhost/ports/63ec3ecb-449b-4bf2-a4ca-2898fd60d04c", "rel": "bookmark"}], "created_at": "2021-09-20T14:57:08.442420+00:00", "updated_at": "2021-09-20T14:57:09.694544+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-f4e6e226-535a-49eb-9ec4-414ec2169fb8 +Openstack-Request-Id: req-606643e8-da4d-4d58-92f8-d5a9f6d7f5c4 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}"} -PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} +X-Openstack-Ironic-Api-Version: 1.34 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}]ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_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_with_llc_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_llc_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.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_portgroup.TestListPortgroups.test_detail_by_node_name_ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_by_node_name_ok ... ok + +DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT1 GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-1700bdca-ac50-4d0f-8356-0f9c9d9a941e +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 204 No Content +Openstack-Request-Id: req-59b5cfcf-55d4-4f79-b8a2-19a237be2d00 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}"}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_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.TestDelete.test_portgroups_subresource_delete -ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_portgroups_subresource_delete ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait ... 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_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 +X-Openstack-Ironic-Api-Version: 1.1 +GET: /v1/ports {} +GOT:{'ports': [{'uuid': 'bb9a4c23-e108-450a-8570-699f8697d61d', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/bb9a4c23-e108-450a-8570-699f8697d61d', 'rel': 'self'}, {'href': 'http://localhost/ports/bb9a4c23-e108-450a-8570-699f8697d61d', 'rel': 'bookmark'}]}, {'uuid': '4012ea42-55a0-4611-b6af-e5024bb6c18c', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/4012ea42-55a0-4611-b6af-e5024bb6c18c', 'rel': 'self'}, {'href': 'http://localhost/ports/4012ea42-55a0-4611-b6af-e5024bb6c18c', 'rel': 'bookmark'}]}, {'uuid': 'ee417cfa-fd36-4675-9651-7a6041506613', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/ee417cfa-fd36-4675-9651-7a6041506613', 'rel': 'self'}, {'href': 'http://localhost/ports/ee417cfa-fd36-4675-9651-7a6041506613', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=3&marker=ee417cfa-fd36-4675-9651-7a6041506613'} +GET: /v1/ports/detail?node=test-node {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-ece6955b-3be9-4ddf-b3a5-542eb4795265 +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=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-d5367211-7d05-4918-991e-0e0a58ae1472 +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 {} -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': '2020-08-18T08:12:28.731170+00:00', 'updated_at': None} -GET: /v1/ports?sort_key=foo {} +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-09-20T14:56:57.595599+00:00', 'updated_at': None} +GET: /v1/ports/detail {} +GOT:{'ports': [{'uuid': '56c05cde-d292-4b81-8904-37b7f3649ac3', 'address': '66:44:55:33:11:22', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/56c05cde-d292-4b81-8904-37b7f3649ac3', 'rel': 'self'}, {'href': 'http://localhost/ports/56c05cde-d292-4b81-8904-37b7f3649ac3', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:56:59.199064+00:00', 'updated_at': None}]} +GET: /v1/ports?sort_key=uuid {} +GOT:{'ports': [{'uuid': '0dbd9fde-a016-4670-9c83-502d0709df63', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/0dbd9fde-a016-4670-9c83-502d0709df63', 'rel': 'self'}, {'href': 'http://localhost/ports/0dbd9fde-a016-4670-9c83-502d0709df63', 'rel': 'bookmark'}]}, {'uuid': '89cfcc05-6e2a-446d-a6f6-ee40921d0ac4', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/89cfcc05-6e2a-446d-a6f6-ee40921d0ac4', 'rel': 'self'}, {'href': 'http://localhost/ports/89cfcc05-6e2a-446d-a6f6-ee40921d0ac4', 'rel': 'bookmark'}]}, {'uuid': 'f075c0e7-3c24-4af9-9834-fad01db2c594', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/f075c0e7-3c24-4af9-9834-fad01db2c594', 'rel': 'self'}, {'href': 'http://localhost/ports/f075c0e7-3c24-4af9-9834-fad01db2c594', 'rel': 'bookmark'}]}]} +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-312b8da7-2107-4942-8692-c57a646f39c2 +Openstack-Request-Id: req-aab9e3ac-d689-44f7-be39-c682ab915a65 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\": \"'/address' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} +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-138aa389-2c9b-4ac0-9016-651aa787e679 +Openstack-Request-Id: req-71ac8bb2-4ab6-47ea-9b18-a40ae1cc4c52 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 {} -GOT:Response: 400 Bad Request +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: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-6b1c8876-c931-4534-b2b5-3ce516be6587 +Openstack-Request-Id: req-3c5f88b9-7b43-4db9-b514-9a8c7b36ae3a 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 {} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.33 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-63d810d3-934d-40f9-9a13-ae506b4f3be0 +Openstack-Request-Id: req-c510a52c-e4ff-45e7-9dc3-7b65ae4ee0cd 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/0905a79d-2997-4cb7-b025-0541ec27a424 [{'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\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-76374869-6e05-4f48-b170-0deb638aeb3d +Openstack-Request-Id: req-7a73049c-79f5-4284-b9c8-4be079ca4e18 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "0905a79d-2997-4cb7-b025-0541ec27a424", "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/0905a79d-2997-4cb7-b025-0541ec27a424", "rel": "self"}, {"href": "http://localhost/ports/0905a79d-2997-4cb7-b025-0541ec27a424", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:29.429078+00:00", "updated_at": "2020-08-18T08:12:29.603424+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.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-09-20T14:57:09.354548+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-b30ff560-2b8a-4c21-8372-45c23f055974 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-2086192e-60fe-4f4f-a9a1-9bef84949160 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": "2020-08-18T08:12:29.744609+00:00", "updated_at": "2020-08-18T08:12:29.857524+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'op': 'remove'}] +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.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_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_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_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.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_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.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_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_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_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_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_port.TestPost.test_create_port_novif_pxe_noportgroup +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_noportgroup ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_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.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.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_add_node_uuid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_uuid ... 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_collection_links +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_byid ... ok +ironic.tests.unit.api.controllers.v1.test_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_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_port.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.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 +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... 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_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_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.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_portgroup.TestListPortgroups.test_detail_using_query_old_version +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_old_version ... ok + +PUT: /v1/nodes/node-39/traits {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-88e806a1-36df-45c4-8131-54c5012f79b4 +Openstack-Request-Id: req-59de2638-ac6e-401d-a2a1-ae0e80c2625e +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/?limit=3 {} +GOT:{'ports': [{'uuid': '648137d1-00e1-4a28-afb1-66d69aaa0ac9', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/648137d1-00e1-4a28-afb1-66d69aaa0ac9', 'rel': 'self'}, {'href': 'http://localhost/ports/648137d1-00e1-4a28-afb1-66d69aaa0ac9', 'rel': 'bookmark'}]}, {'uuid': '275a73c1-47ee-47ed-8bfa-c81e42470e0a', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/275a73c1-47ee-47ed-8bfa-c81e42470e0a', 'rel': 'self'}, {'href': 'http://localhost/ports/275a73c1-47ee-47ed-8bfa-c81e42470e0a', 'rel': 'bookmark'}]}, {'uuid': '0a4a00d1-aa92-4227-b0c6-bf56cc997846', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/0a4a00d1-aa92-4227-b0c6-bf56cc997846', 'rel': 'self'}, {'href': 'http://localhost/ports/0a4a00d1-aa92-4227-b0c6-bf56cc997846', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=3&marker=0a4a00d1-aa92-4227-b0c6-bf56cc997846'} +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-09-20T14:57:06.599566+00:00', 'updated_at': None}]} +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-09-20T14:57:08.192658+00:00', 'updated_at': None}]} +GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-78f0f8f6-6392-4c3e-8445-c2c28db2d231 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}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/ports/f5ca825b-fd94-4914-96ca-c53c0e6f0e14 {} +GOT:{'uuid': 'f5ca825b-fd94-4914-96ca-c53c0e6f0e14', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/f5ca825b-fd94-4914-96ca-c53c0e6f0e14', 'rel': 'self'}, {'href': 'http://foo/ports/f5ca825b-fd94-4914-96ca-c53c0e6f0e14', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:11.816601+00:00', 'updated_at': None} +GET: /v1/ports/f5ca825b-fd94-4914-96ca-c53c0e6f0e14 {} +GOT:{'uuid': 'f5ca825b-fd94-4914-96ca-c53c0e6f0e14', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/f5ca825b-fd94-4914-96ca-c53c0e6f0e14', 'rel': 'self'}, {'href': 'http://foo/ports/f5ca825b-fd94-4914-96ca-c53c0e6f0e14', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:11.816601+00:00', 'updated_at': None} +GET: /ports/f5ca825b-fd94-4914-96ca-c53c0e6f0e14 {} +GOT:{'uuid': 'f5ca825b-fd94-4914-96ca-c53c0e6f0e14', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/f5ca825b-fd94-4914-96ca-c53c0e6f0e14', 'rel': 'self'}, {'href': 'http://foo/ports/f5ca825b-fd94-4914-96ca-c53c0e6f0e14', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:11.816601+00:00', 'updated_at': None} 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-da0a66fe-d0fe-4119-83b9-4fecd50851da +Openstack-Request-Id: req-3679fe14-bb20-42ac-a445-1a2a85325cd1 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": "2020-08-18T08:12:30.212707+00:00", "updated_at": "2020-08-18T08:12:30.391482+00:00"} +{"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-09-20T14:57:15.204950+00:00", "updated_at": "2021-09-20T14:57:16.793381+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-145d91ce-2db4-47b4-a28e-8b4c2192f923 +Openstack-Request-Id: req-c4f26085-369d-4fa0-8f93-29700b02a463 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": "2020-08-18T08:12:30.212707+00:00", "updated_at": "2020-08-18T08:12:30.526790+00:00"} -PATCH: /v1/ports/e57cffd8-1086-477b-bee2-1accd6ae618f [{'path': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +{"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-09-20T14:57:15.204950+00:00", "updated_at": "2021-09-20T14:57:18.013759+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-9ba89105-18cd-4838-b08e-8ea432220e59 +Openstack-Request-Id: req-04cb1f9c-f214-4f44-a66e-3e8abe5bc02d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.27 -{"uuid": "e57cffd8-1086-477b-bee2-1accd6ae618f", "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/e57cffd8-1086-477b-bee2-1accd6ae618f", "rel": "self"}, {"href": "http://localhost/ports/e57cffd8-1086-477b-bee2-1accd6ae618f", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:30.687911+00:00", "updated_at": "2020-08-18T08:12:30.873694+00:00"} -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.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-09-20T14:57:18.839161+00:00", "updated_at": "2021-09-20T14:57:20.058421+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-de269250-811a-4236-8aff-bc4a418a7546 +Openstack-Request-Id: req-ee3d20c2-c3fa-40f1-b72d-d49b541b80e7 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}"}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.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.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_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_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.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_port.TestPost.test_create_port_invalid_addr_format -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_addr_format ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ... ok +{"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-09-20T14:57:21.259567+00:00", "updated_at": "2021-09-20T14:57:22.214879+00:00"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}]ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_pxe_enabled_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_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_port.TestPatch.test_invalid_physnet_non_text +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_invalid_physnet_non_text ... ok -POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '41b7285a-2fd8-43c6-a3e7-3af1831e14de'}, '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 +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/778eec32-f2ee-417c-8672-ac25f41d91fd [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-dad5452c-68cb-4223-b7c0-de16746ca729 +Openstack-Request-Id: req-7a7ddb3b-5b4a-4cd8-8efe-1c143d4767ad 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'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.24 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-81faa9df-b472-4e7d-8031-1721a1d8b0fc +Openstack-Request-Id: req-5b65058b-cb93-4f32-90f5-35b4a1db28d1 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}"} -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': '2020-08-18T08:12:28.574575+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'}]}]} -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?node=test-node {} -GOT:{'portgroups': [{'uuid': '68f65d17-0aef-45cf-a74d-f15430e5e16c', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/68f65d17-0aef-45cf-a74d-f15430e5e16c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/68f65d17-0aef-45cf-a74d-f15430e5e16c', 'rel': 'bookmark'}]}, {'uuid': '8ca87aa2-4752-4a8c-b85e-ad20dddbd7e0', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/8ca87aa2-4752-4a8c-b85e-ad20dddbd7e0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8ca87aa2-4752-4a8c-b85e-ad20dddbd7e0', 'rel': 'bookmark'}]}, {'uuid': '0b862e38-3ea4-48bd-8306-aa1bba8280d8', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/0b862e38-3ea4-48bd-8306-aa1bba8280d8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0b862e38-3ea4-48bd-8306-aa1bba8280d8', 'rel': 'bookmark'}]}]} -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': '2020-08-18T08:12:29.632822+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': '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': '2020-08-18T08:12:29.903836+00:00', 'updated_at': None} -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 +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-09-20T14:57:01.772962+00:00", "updated_at": "2021-09-20T14:57:03.231408+00:00"} +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-4c2d2af5-f4da-436d-9758-0df7fec2e818 +Openstack-Request-Id: req-1dc52ad6-14c8-4aa2-9f7d-f302a2d259e0 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": "2020-08-18T08:12:30.140730+00:00", "updated_at": "2020-08-18T08:12:30.161257+00:00"} -PATCH: /v1/portgroups/52:54:00:cf:2d:31 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request -Content-Type: application/json -{"error_message": "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': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.34 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'b068aff8-fa3b-4195-a7b2-041bf8d152a2', 'op': 'replace'}] +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-3a0cae48-f320-4a98-9c07-f081f557b805 +Openstack-Request-Id: req-8904424a-6fea-469e-a864-111a3413937f 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": "2020-08-18T08:12:31.161305+00:00", "updated_at": "2020-08-18T08:12:31.354754+00:00"}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_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_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_empty -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ... 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_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_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_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 - -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.15 +{"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: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-e97e0aab-b9e3-4ffe-b7b5-651b431d9b3a +Openstack-Request-Id: req-c4a609b9-eed1-428c-9bf1-dcd3a2fe7e03 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': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.39 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot update port \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c781\\\" on \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} +PATCH: /v1/ports/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-a10193f8-8cc3-4d95-abf8-8e3a2f7c2b51 +Openstack-Request-Id: req-c71d91ee-0550-407d-88ba-d3ea2e1796d5 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": "2020-08-18T08:12:28.899788+00:00", "updated_at": "2020-08-18T08:12:29.099025+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/pxe_enabled', 'value': True, 'op': 'replace'}] -GOT:Response: 406 Not Acceptable +{"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-09-20T14:57:10.014121+00:00", "updated_at": "2021-09-20T14:57:11.430779+00:00"} +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-1b1cc950-5757-4c83-83c4-8202c7a12c1a +Openstack-Request-Id: req-1697ad14-b20b-4dc6-8230-b22985891d69 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/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.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', 'switch_info': 'fooswitch'}, '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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-95efc3b8-fe28-40e8-ad4c-f98f12249c32 +Openstack-Request-Id: req-642d89fa-cd30-464d-950f-a8866c32d666 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": "2020-08-18T08:12:29.942274+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': '2020-08-18T08:12:29.942274+00:00', 'updated_at': None} -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 +{"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': '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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-e760ce98-8cfd-4197-942b-0a72861a6c8e +Openstack-Request-Id: req-115c268d-40bd-4614-9408-072b831ac0fa 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": "2020-08-18T08:12:30.305810+00:00", "updated_at": null} +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': True, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 201 Created +GOT:Response: 409 Conflict Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-1cd7bd03-7717-414f-b07c-aafe7458a1d3 +Openstack-Request-Id: req-f3a93f13-b91f-4f97-ba23-e5cf95f5012b 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": "2020-08-18T08:12:30.716231+00:00", "updated_at": null} +{"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: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a4585149-d102-4d09-a12a-83a975953e79 +Openstack-Request-Id: req-0273c28a-3026-4c86-a241-0490c98984be 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': '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-1b6083d8-2c22-429c-aaf8-ed2a16b92c76 -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}"} -GET: /v1/portgroups {} -GOT:{'portgroups': [{'uuid': '83993ff7-b874-44cc-ab19-06c0668093b0', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/83993ff7-b874-44cc-ab19-06c0668093b0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/83993ff7-b874-44cc-ab19-06c0668093b0', 'rel': 'bookmark'}]}, {'uuid': 'fba7366e-44df-455a-a666-7e89d28d59c0', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/fba7366e-44df-455a-a666-7e89d28d59c0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fba7366e-44df-455a-a666-7e89d28d59c0', 'rel': 'bookmark'}]}, {'uuid': '4967d90d-9ee1-47b2-9b22-697fd3bf4f7e', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/4967d90d-9ee1-47b2-9b22-697fd3bf4f7e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4967d90d-9ee1-47b2-9b22-697fd3bf4f7e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=3&marker=4967d90d-9ee1-47b2-9b22-697fd3bf4f7e'}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_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_standalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait -ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_set_all_traits_rejects_bad_trait ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_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_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_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_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_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_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_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_internal_info_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_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_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_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.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_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 -ironic.tests.unit.api.controllers.v1.test_types.TestLocalLinkConnectionType.test_local_link_connection_type ... 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_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_portgroup.TestPost.test_create_portgroup_v123 -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_v123 ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_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_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_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_invalid_uuid -ironic.tests.unit.api.controllers.v1.test_types.TestUuidType.test_invalid_uuid ... 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_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.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_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.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_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_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.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_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_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_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_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_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_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_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_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_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_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_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_port.TestPost.test_create_port_with_internal_field -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_internal_field ... ok +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '841e4ece-b263-44ab-bd55-730e6edb2b99'}, '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_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_node_locked ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked ... 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_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_port.TestListPorts.test_one -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ... 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_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_utils.TestNodeIdent.test_allow_node_logical_names_pre_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_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_utils.TestNodeIdent.test_get_rpc_node_expect_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_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_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_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_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_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_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.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_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_portgroup.TestListPortgroups.test_get_one +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one ... ok -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-69d5b93f-66e1-4704-bd64-ea1ca0258f53 +PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3']} +GOT:Response: 204 No Content +Openstack-Request-Id: req-aa9dfc13-c106-44aa-a8bc-b48e882792be 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': '/pxe_enabled', 'value': False, 'op': 'add'}] -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.37 + +PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': []} +GOT:Response: 405 Method Not Allowed +Allow: DELETE, GET, PATCH, POST +Content-Type: application/json +{"error_message": "405 Method Not Allowed\n\nThe method PUT is not allowed for this resource. \n\n "} +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=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 {} +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-09-20T14:57:02.763483+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-09-20T14:57:04.224210+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_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-09-20T14:57:04.224210+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-09-20T14:57:06.571071+00:00', 'updated_at': None}]} +GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} +GOT:{'ports': [{'uuid': '47c4732f-f4bd-445e-8a05-c9d996f261b2', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/47c4732f-f4bd-445e-8a05-c9d996f261b2', 'rel': 'self'}, {'href': 'http://localhost/ports/47c4732f-f4bd-445e-8a05-c9d996f261b2', 'rel': 'bookmark'}]}]} +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. "} +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': '/node_id', 'value': '1', 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-8100ed0b-e2d7-458d-9523-800f78324a7b +Openstack-Request-Id: req-606be6fc-22d6-4518-a53a-413c548aa80c 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/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] -GOT:Response: 400 Bad Request +{"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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-f9547b1b-ed67-4139-9ba6-8f62b9f91da4 +Openstack-Request-Id: req-475447d0-6c0d-4486-b3ef-a1729aa710a0 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', 'switch_info': 'fooswitch'}, '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 +{"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-09-20T14:57:19.675541+00:00", "updated_at": null} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '9af7bddf-3489-4c48-96a0-207db1502e88', 'op': 'add'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e45cda1a-fd28-48b0-a6d9-3101869433b5 +Openstack-Request-Id: req-07de47b0-1e48-4cd9-ab00-b2d3b4cba2ea 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': '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 +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": "9af7bddf-3489-4c48-96a0-207db1502e88", "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-09-20T14:57:21.995314+00:00", "updated_at": "2021-09-20T14:57:23.424729+00:00"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 1234, '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-69157e07-379f-4695-96e9-cfa47bab3981 +Openstack-Request-Id: req-61a94008-5e2b-4abb-a3fb-85b8011456af 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": "2020-08-18T08:12:31.694965+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\": \"Invalid input for field/attribute physical_network. Value: '1234'. Value should be string\", \"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-393cf8f3-a32b-429e-a6a3-3995abfbabf2 +Openstack-Request-Id: req-7605cf09-ff79-4be1-87af-8a32f4bdc629 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': 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-1f69894a-aafe-4a21-b8ed-4387b5e5e49a +{"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.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.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_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_error +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_error ... 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_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.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_portgroup.TestListPortgroups.test_links +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_links ... 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_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_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.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_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_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.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_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_empty +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ... ok + +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 204 No Content +Openstack-Request-Id: req-95a043bb-9cbf-4d91-85f2-59f876648b04 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": "2020-08-18T08:12:32.142666+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: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-e6e82383-1564-4f62-b7df-9344696ac2dc + +DELETE: /v1/portgroups/pg.1 +GOT:Response: 204 No Content +Openstack-Request-Id: req-c18c225f-2695-4c51-9293-a730b5dda04a 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': {}, 'pxe_enabled': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 + +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-09-20T14:57:14.695229+00:00', 'updated_at': None}]} +GET: /v1/portgroups/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-32ae5a34-5b63-444a-a46b-8b0caea3f3ea -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/portgroups?fields=uuid,extra {} -GOT:{'portgroups': [{'uuid': '66a0ff1f-e83e-4d0a-a022-1642a7712211', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/66a0ff1f-e83e-4d0a-a022-1642a7712211', 'rel': 'self'}, {'href': 'http://localhost/portgroups/66a0ff1f-e83e-4d0a-a022-1642a7712211', 'rel': 'bookmark'}]}, {'uuid': 'c8be5be0-7d5f-4459-b3ff-7e54ee20fdfc', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/c8be5be0-7d5f-4459-b3ff-7e54ee20fdfc', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c8be5be0-7d5f-4459-b3ff-7e54ee20fdfc', 'rel': 'bookmark'}]}, {'uuid': 'fcc6ad63-2683-41e6-8a30-8edc538f6833', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/fcc6ad63-2683-41e6-8a30-8edc538f6833', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fcc6ad63-2683-41e6-8a30-8edc538f6833', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/?fields=address,properties {} +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/portgroups/detail?sort_key=mode {} +GOT:{'portgroups': [{'uuid': '64bfcbb1-c083-4819-acc1-ea35a9d0dbf6', '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/64bfcbb1-c083-4819-acc1-ea35a9d0dbf6', 'rel': 'self'}, {'href': 'http://localhost/portgroups/64bfcbb1-c083-4819-acc1-ea35a9d0dbf6', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_1', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/64bfcbb1-c083-4819-acc1-ea35a9d0dbf6/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/64bfcbb1-c083-4819-acc1-ea35a9d0dbf6/ports', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:17.659408+00:00', 'updated_at': None}, {'uuid': 'ec6d5861-59e8-4015-9a99-3fe854a1221b', '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/ec6d5861-59e8-4015-9a99-3fe854a1221b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ec6d5861-59e8-4015-9a99-3fe854a1221b', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_2', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/ec6d5861-59e8-4015-9a99-3fe854a1221b/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/ec6d5861-59e8-4015-9a99-3fe854a1221b/ports', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:17.622069+00:00', 'updated_at': None}, {'uuid': 'c1923ebf-8592-4cdb-b10b-a0a5a1053a8d', '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/c1923ebf-8592-4cdb-b10b-a0a5a1053a8d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c1923ebf-8592-4cdb-b10b-a0a5a1053a8d', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'mode_3', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/c1923ebf-8592-4cdb-b10b-a0a5a1053a8d/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c1923ebf-8592-4cdb-b10b-a0a5a1053a8d/ports', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:17.568621+00:00', 'updated_at': None}]} +GET: /v1/portgroups?node=test-node {} +GOT:{'portgroups': [{'uuid': 'f29ac661-c52e-40af-8048-3829e010fb5c', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/f29ac661-c52e-40af-8048-3829e010fb5c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f29ac661-c52e-40af-8048-3829e010fb5c', 'rel': 'bookmark'}]}, {'uuid': '93eba95f-de02-4aee-8827-e2af1dcdcddf', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/93eba95f-de02-4aee-8827-e2af1dcdcddf', 'rel': 'self'}, {'href': 'http://localhost/portgroups/93eba95f-de02-4aee-8827-e2af1dcdcddf', 'rel': 'bookmark'}]}, {'uuid': 'aa7df759-e95c-40ee-af8f-62b0a66553d2', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/aa7df759-e95c-40ee-af8f-62b0a66553d2', 'rel': 'self'}, {'href': 'http://localhost/portgroups/aa7df759-e95c-40ee-af8f-62b0a66553d2', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-88a8eeca-9664-4804-a977-970763b16b65 +Openstack-Request-Id: req-8fea3490-9dd2-41ef-b9f7-8ca0958248ca 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}"}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.TestPatch.test_update_portgroup_internal_info_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_internal_info_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_utils.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_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_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.TestListPorts.test_links -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ... 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_duplicates -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... 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.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_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_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_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 - -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": "{\"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-09-20T14:57:23.337218+00:00', 'updated_at': None} +GET: /v1/portgroups {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-01003d3a-a5ea-47f1-b0d5-2cbb9c582c44 +Openstack-Request-Id: req-e405b13a-6e85-469a-b45f-1585e728fdd3 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', '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 +X-Openstack-Ironic-Api-Version: 1.14 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/portgroups/8bb490df-4430-43b1-a4a5-16d6612a6b17/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/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-4503a44c-845d-4a7e-9129-b5eb002a6e93 +Openstack-Request-Id: req-fb154da9-27d2-4ebe-8094-e22df3bdaf02 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': '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\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"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-96e0381f-e146-40c2-b4b3-41aaf4f4f41b +Openstack-Request-Id: req-c9a46cc0-e946-4df3-9371-e9a6e6cbe74f 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': True, 'physical_network': None, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/internal_info' is an internal attribute and can not be updated\", \"debuginfo\": 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-6fc7dbfc-4fe2-4e3b-972b-24ea8d57b1ab +Openstack-Request-Id: req-a85be167-7455-4bdd-9ced-af183ec58810 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': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"}ironic.tests.unit.api.controllers.v1.test_portgroup.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.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_port.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ... 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': {}, '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': '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 Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-658f32cc-6f74-4740-ace4-aead014a9e27 +Openstack-Request-Id: req-5d0e10ec-5409-4868-aea7-32fcf94ef5e7 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": "2020-08-18T08:12:31.801748+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": "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-09-20T14:57:16.859111+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-09-20T14:57:16.859111+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': '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-4de13ac4-cf7c-497c-b16d-83b34e81116b +Openstack-Request-Id: req-5dae9e39-79f4-4978-be94-715b7eacdb2b 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": "2020-08-18T08:12:32.507152+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 +{"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-09-20T14:57:20.030252+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': '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-41d45067-1458-4c61-a2dc-e7e1f081e7f9 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-9a57aada-a999-47f4-a873-0bfb8bf3aad4 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}"} -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": "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-09-20T14:57:22.297933+00:00", "updated_at": null} +DELETE: /v1/portgroups/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-7e029480-7e9f-413f-9df8-7ab8bc546cf7 +{"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. "} +DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +GOT:Response: 409 Conflict +Content-Type: application/json +Openstack-Request-Id: req-dad94f6e-7a91-42c6-b466-b9c80896be85 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': '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 +{"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/detail {} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-c1fd3cfd-036e-445d-a01f-68c8d992ee2e +Openstack-Request-Id: req-76573e00-55d8-4d25-b997-14974742644c 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": "2020-08-18T08:12:33.136819+00:00", "updated_at": null}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 -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_against_single ... ok -ironic.tests.unit.api.controllers.v1.test_utils.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_port.TestPatch.test_add_node_id -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_id ... ok +{"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': '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-09-20T14:57:27.850753+00:00', 'updated_at': None} +GET: /v1/portgroups/69f7a4f5-5613-4c4f-9f3f-beef9075b36f/ports {} +GOT:{'ports': [{'uuid': 'ca62f160-030b-493b-9118-e7930eb058d8', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/ca62f160-030b-493b-9118-e7930eb058d8', 'rel': 'self'}, {'href': 'http://localhost/ports/ca62f160-030b-493b-9118-e7930eb058d8', 'rel': 'bookmark'}]}, {'uuid': '5ca5e04c-da6c-4169-aa65-7aa523a6d2db', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/5ca5e04c-da6c-4169-aa65-7aa523a6d2db', 'rel': 'self'}, {'href': 'http://localhost/ports/5ca5e04c-da6c-4169-aa65-7aa523a6d2db', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/69f7a4f5-5613-4c4f-9f3f-beef9075b36f/ports/detail {}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource ... ok +ironic.tests.unit.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.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 -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 +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-dacaa888-f5c2-44a5-8356-4a048f1e78b5 +Openstack-Request-Id: req-5841be44-de8d-4e7b-8ee4-419bdeb269e0 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, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +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,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-5b1ece94-6325-4666-a8ec-f117965c9bf6 +Openstack-Request-Id: req-dc4391eb-1b68-42cd-9c6d-630fc8fcb8a1 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'} +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?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?address=aa:bb:cc:dd:ee:ff {} +GOT:{'ports': []} +GET: /v1/ports?sort_key=pxe_enabled {} +GOT:{'ports': [{'uuid': 'c02cc08c-68ce-4783-b120-39b5dc41ada2', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/c02cc08c-68ce-4783-b120-39b5dc41ada2', 'rel': 'self'}, {'href': 'http://localhost/ports/c02cc08c-68ce-4783-b120-39b5dc41ada2', 'rel': 'bookmark'}]}, {'uuid': '06e0be8d-6030-440f-9fff-832c2fc3dda8', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/06e0be8d-6030-440f-9fff-832c2fc3dda8', 'rel': 'self'}, {'href': 'http://localhost/ports/06e0be8d-6030-440f-9fff-832c2fc3dda8', 'rel': 'bookmark'}]}]} +PATCH: /v1/ports/3874cd09-c435-4591-9b84-0fc29e3469e0 [{'path': '/extra/vif_port_id', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-68fe4974-a371-40bf-a79f-733dca0c33dc +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "3874cd09-c435-4591-9b84-0fc29e3469e0", "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/3874cd09-c435-4591-9b84-0fc29e3469e0", "rel": "self"}, {"href": "http://localhost/ports/3874cd09-c435-4591-9b84-0fc29e3469e0", "rel": "bookmark"}], "created_at": "2021-09-20T14:57:12.240552+00:00", "updated_at": "2021-09-20T14:57:13.366236+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-5d4e071e-566b-4fdc-9306-3486a28e1c42 +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": "2021-09-20T14:57:14.534941+00:00", "updated_at": "2021-09-20T14:57:16.071876+00:00"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'da0be00a-61bb-47a3-94e1-4e12f7ead57c', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-83e9d60f-cda1-4bed-9161-3a85e9eb6ddc +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": "da0be00a-61bb-47a3-94e1-4e12f7ead57c", "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-09-20T14:57:17.463353+00:00", "updated_at": "2021-09-20T14:57:23.910918+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': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-f895416d-5e45-4e65-98bd-acb94e5e799d +Openstack-Request-Id: req-77cad7d9-ff19-4a2b-b9fc-0b84e6860afa 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": "2020-08-18T08:12:31.985244+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': 'd6aeca0e-9d59-4e8e-93f4-174c67093579', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} -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": 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-09-20T14:57:26.576392+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: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-98508595-e1d3-43f8-9025-0332a57ea538 +Openstack-Request-Id: req-1e9b5751-889f-4740-af7a-42c0f86f3797 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 d6aeca0e-9d59-4e8e-93f4-174c67093579 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': '4b83f7d2-1ddd-46fb-b7e9-d813482d3af2'}, '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 +{"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 Content-Type: application/json -Openstack-Request-Id: req-fd924704-fe20-4e8e-a6af-9bab82cbc130 +Openstack-Request-Id: req-df9a20dd-73f1-4cd6-a5a6-865236dbceba 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': 'physnet1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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 +Content-Type: application/json +Openstack-Request-Id: req-2e102fa7-5452-4758-835c-002e8680c664 +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}"}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_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_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 + +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-8c2d9d1e-18d8-4c9c-8bfe-7e9e5f696f8d +Openstack-Request-Id: req-8d981374-2636-408a-8007-24cbf8cc9172 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.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 409 Conflict +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-e4849dd0-6ff2-4276-8b61-e4c76be16c93 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-938710b0-d976-4024-8208-a8c36f3e9cc9 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 {} +{"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-09-20T14:57:18.011003+00:00", "updated_at": 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/fdec48f5-c3ab-43c7-9374-38e9c91eac2e {} -GOT:{'uuid': 'fdec48f5-c3ab-43c7-9374-38e9c91eac2e', '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/fdec48f5-c3ab-43c7-9374-38e9c91eac2e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e/ports', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:33.185875+00:00', 'updated_at': None} -GET: /v1/portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e {} -GOT:{'uuid': 'fdec48f5-c3ab-43c7-9374-38e9c91eac2e', '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/fdec48f5-c3ab-43c7-9374-38e9c91eac2e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e/ports', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:33.185875+00:00', 'updated_at': None} -GET: /portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e {} -GOT:{'uuid': 'fdec48f5-c3ab-43c7-9374-38e9c91eac2e', '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/fdec48f5-c3ab-43c7-9374-38e9c91eac2e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fdec48f5-c3ab-43c7-9374-38e9c91eac2e/ports', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:33.185875+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_portgroup_by_address_invalid_address_format -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_invalid_address_format ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_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_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_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.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_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_portgroup.TestPatch.test_remove_address -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups_subcontrollers -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_portgroups_subcontrollers ... ok +GET: /v1/portgroups/?limit=3 {} +GOT:{'portgroups': [{'uuid': '1212830a-d732-4b06-81dc-e93b9c8edff4', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/1212830a-d732-4b06-81dc-e93b9c8edff4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1212830a-d732-4b06-81dc-e93b9c8edff4', 'rel': 'bookmark'}]}, {'uuid': '4e8d3e11-140b-4772-9fb7-e5d4b25b391e', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/4e8d3e11-140b-4772-9fb7-e5d4b25b391e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4e8d3e11-140b-4772-9fb7-e5d4b25b391e', 'rel': 'bookmark'}]}, {'uuid': 'b521146b-3690-42c7-a0e9-e09a51762d0a', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/b521146b-3690-42c7-a0e9-e09a51762d0a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b521146b-3690-42c7-a0e9-e09a51762d0a', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=3&marker=b521146b-3690-42c7-a0e9-e09a51762d0a'} +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-09-20T14:57:22.866930+00:00', 'updated_at': None}]} +GET: /v1/portgroups?detail=True {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-77d96a16-8a15-4339-8197-2623ec74c6c6 +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.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-09-20T14:57:25.988475+00:00', 'updated_at': None} +GET: /v1/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47 {} +GOT:{'uuid': '672772cb-4534-4248-95b1-b2faa50d6f47', '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/672772cb-4534-4248-95b1-b2faa50d6f47', 'rel': 'self'}, {'href': 'http://localhost/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47/ports', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:27.402886+00:00', 'updated_at': None} +GET: /v1/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47 {} +GOT:{'uuid': '672772cb-4534-4248-95b1-b2faa50d6f47', '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/672772cb-4534-4248-95b1-b2faa50d6f47', 'rel': 'self'}, {'href': 'http://localhost/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47/ports', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:27.402886+00:00', 'updated_at': None} +GET: /portgroups/672772cb-4534-4248-95b1-b2faa50d6f47 {} +GOT:{'uuid': '672772cb-4534-4248-95b1-b2faa50d6f47', '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/672772cb-4534-4248-95b1-b2faa50d6f47', 'rel': 'self'}, {'href': 'http://localhost/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/672772cb-4534-4248-95b1-b2faa50d6f47/ports', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:27.402886+00:00', 'updated_at': None} +GET: /v1/portgroups?address=aa:bb:cc:dd:ee:f1 {} +GOT:{'portgroups': [{'uuid': '27643eab-c5bb-415f-ae2e-23ca414f9df3', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/27643eab-c5bb-415f-ae2e-23ca414f9df3', 'rel': 'self'}, {'href': 'http://localhost/portgroups/27643eab-c5bb-415f-ae2e-23ca414f9df3', 'rel': 'bookmark'}]}]}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_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_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_remove_uuid +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ... 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.TestPost.test_create_portgroup_default_mode +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_default_mode ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.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_update_address_invalid_format +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional ... ok +ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_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_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_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_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_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_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.TestListPortgroups.test_sort_key_not_allowed +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed ... ok -PUT: /v1/nodes/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-80fbf1c5-4014-4a4c-9833-3ca5acc9ec44 +Openstack-Request-Id: req-6d4cb430-80f6-451c-85c3-c8072b560c65 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-295bc85f-3c42-43bd-82b9-598bcb507b58 +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/7b18132e-412a-4313-a2da-ab92916cde35 [{'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-6eeb0145-dfce-4868-a576-490ad9c58525 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_12 -GOT:Response: 404 Not Found +X-Openstack-Ironic-Api-Version: 1.27 +{"uuid": "7b18132e-412a-4313-a2da-ab92916cde35", "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/7b18132e-412a-4313-a2da-ab92916cde35", "rel": "self"}, {"href": "http://localhost/ports/7b18132e-412a-4313-a2da-ab92916cde35", "rel": "bookmark"}], "created_at": "2021-09-20T14:57:13.760956+00:00", "updated_at": "2021-09-20T14:57:15.274953+00:00"} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '08fb5052-5c0f-47e4-92a3-1fac1dbee90d', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-06146df8-9cdd-4b09-b00a-5a9514bac54e +Openstack-Request-Id: req-2adb2468-66b6-4782-841a-1fe9276bf8dd 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': ['CUSTOM_3']} -GOT:Response: 204 No Content -Openstack-Request-Id: req-9ccb4d50-7399-4da1-83aa-6bd6b910f447 +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-09-20T14:57:16.702376+00:00", "updated_at": null} +PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '50a3d29a-0e61-403e-bec3-216327c17b6c', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '91c4bea2-62ca-4df1-9205-94e0644d0856', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-d80ba6e0-5fd7-43e0-b6ad-80d86edc1f42 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/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} -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": "91c4bea2-62ca-4df1-9205-94e0644d0856", "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-09-20T14:57:19.051063+00:00", "updated_at": "2021-09-20T14:57:20.507696+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-c67c797b-a7af-4e9f-99ac-e3e2b076812a +Openstack-Request-Id: req-5828bb91-875f-425f-a4a2-f9b1827508d0 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?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': '2020-08-18T08:12:32.058281+00:00', 'updated_at': None}]} -GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} +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-09-20T14:57:21.768016+00:00", "updated_at": "2021-09-20T14:57:27.992507+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'} GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-1e3c3d37-22b6-4be8-85ba-d7ad1cab5d7b +Openstack-Request-Id: req-c43db56c-7b34-4ba2-bb69-43602bd9b2dd 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.46 {"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 +POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'vif_port_id': '2ab2f318-f546-4fac-9699-537831c5943f'}, '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-4696dbb3-e756-499f-be57-25a6cf42544e +Openstack-Request-Id: req-244fa8f6-c1a4-4054-ae36-78f30ae5ea8c 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', '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': '2020-08-18T08:12:32.716170+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': '2020-08-18T08:12:32.716170+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': '2020-08-18T08:12:32.972853+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': '2020-08-18T08:12:32.972853+00:00', 'updated_at': None} -GET: /v1/ports/5447c735-f274-4b66-89bf-fa7b21a1e5c6 {} -GOT:{'uuid': '5447c735-f274-4b66-89bf-fa7b21a1e5c6', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/5447c735-f274-4b66-89bf-fa7b21a1e5c6', 'rel': 'self'}, {'href': 'http://localhost/ports/5447c735-f274-4b66-89bf-fa7b21a1e5c6', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:33.260071+00:00', 'updated_at': None} -GET: /v1/ports/5447c735-f274-4b66-89bf-fa7b21a1e5c6 {} -GOT:{'uuid': '5447c735-f274-4b66-89bf-fa7b21a1e5c6', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/5447c735-f274-4b66-89bf-fa7b21a1e5c6', 'rel': 'self'}, {'href': 'http://localhost/ports/5447c735-f274-4b66-89bf-fa7b21a1e5c6', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:33.260071+00:00', 'updated_at': None} -GET: /ports/5447c735-f274-4b66-89bf-fa7b21a1e5c6 {} -GOT:{'uuid': '5447c735-f274-4b66-89bf-fa7b21a1e5c6', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/ports/5447c735-f274-4b66-89bf-fa7b21a1e5c6', 'rel': 'self'}, {'href': 'http://localhost/ports/5447c735-f274-4b66-89bf-fa7b21a1e5c6', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:33.260071+00:00', 'updated_at': None} -GET: /v1/ports/detail {}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_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_provide_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_provide_verbs ... 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_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_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_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_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_non_existent -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root_non_existent ... 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_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 - -PUT: /v1/nodes/node-39/traits {'traits': []} -GOT:Response: 204 No Content -Openstack-Request-Id: req-aa13d48b-7cdc-4e5b-b110-7bbdec88301c -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: 409 Conflict +{"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'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-64d77192-6ca5-4457-bff3-f5d8dd453570 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-6e07680d-46d7-4338-a609-865618c9bb35 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}"} -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/cf585e1b-0a20-4bb6-88ce-bc0dfab6c170 +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-09-20T14:57:34.989664+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-d624aa15-65fe-4f45-9c83-6c11dc98f521 +Openstack-Request-Id: req-8c2cb64c-aec2-4f9c-b84d-c0ce06cab298 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/?limit=3 {} -GOT:{'ports': [{'uuid': 'e81c3492-bdd6-4ab5-8f27-026556c8e9ec', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/e81c3492-bdd6-4ab5-8f27-026556c8e9ec', 'rel': 'self'}, {'href': 'http://localhost/ports/e81c3492-bdd6-4ab5-8f27-026556c8e9ec', 'rel': 'bookmark'}]}, {'uuid': '277639f1-1f3c-4a14-8393-08913cb40edf', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/277639f1-1f3c-4a14-8393-08913cb40edf', 'rel': 'self'}, {'href': 'http://localhost/ports/277639f1-1f3c-4a14-8393-08913cb40edf', 'rel': 'bookmark'}]}, {'uuid': '9f921fe7-d78f-40bb-bcee-0d8cc25b7805', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/9f921fe7-d78f-40bb-bcee-0d8cc25b7805', 'rel': 'self'}, {'href': 'http://localhost/ports/9f921fe7-d78f-40bb-bcee-0d8cc25b7805', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=3&marker=9f921fe7-d78f-40bb-bcee-0d8cc25b7805'} -GET: /v1/ports {} -GOT:{'ports': []} -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': '2020-08-18T08:12:31.889960+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': '2020-08-18T08:12:32.075539+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_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': '2020-08-18T08:12:32.075539+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': '2020-08-18T08:12:32.368063+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': '2020-08-18T08:12:32.368063+00:00', 'updated_at': None} -GET: /v1/ports/5d096a9c-139b-4f2e-8927-f879ad428ab4 {} -GOT:{'uuid': '5d096a9c-139b-4f2e-8927-f879ad428ab4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/5d096a9c-139b-4f2e-8927-f879ad428ab4', 'rel': 'self'}, {'href': 'http://foo/ports/5d096a9c-139b-4f2e-8927-f879ad428ab4', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:32.668340+00:00', 'updated_at': None} -GET: /v1/ports/5d096a9c-139b-4f2e-8927-f879ad428ab4 {} -GOT:{'uuid': '5d096a9c-139b-4f2e-8927-f879ad428ab4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/5d096a9c-139b-4f2e-8927-f879ad428ab4', 'rel': 'self'}, {'href': 'http://foo/ports/5d096a9c-139b-4f2e-8927-f879ad428ab4', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:32.668340+00:00', 'updated_at': None} -GET: /ports/5d096a9c-139b-4f2e-8927-f879ad428ab4 {} -GOT:{'uuid': '5d096a9c-139b-4f2e-8927-f879ad428ab4', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://foo/v1/ports/5d096a9c-139b-4f2e-8927-f879ad428ab4', 'rel': 'self'}, {'href': 'http://foo/ports/5d096a9c-139b-4f2e-8927-f879ad428ab4', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:32.668340+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=aa:bb:cc:dd:ee:ff {} -GOT:{'ports': []} -GET: /v1/ports?sort_key=pxe_enabled {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"}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.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_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_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_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_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_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.TestListPortgroups.test_detail_query +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ... 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.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_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_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.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_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_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_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.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.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_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.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_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_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_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.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.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_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_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.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_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_portgroup.TestListPortgroups.test_many +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ... 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_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_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_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_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_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_custom_fields_invalid_fields ... ok + GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-eb2fe2db-fe67-48f5-8913-76f94184142f +Openstack-Request-Id: req-1b4d09b3-100b-431a-b36b-1d393f5ce5a4 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.18 +X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -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-8f20f07c-1a0d-42d8-8732-98e8f0cb0f73 -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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-a773b34e-7aa5-4093-a8d8-bc480414df57 -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": "2020-08-18T08:12:33.921277+00:00", "updated_at": null}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_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_allow_node_logical_names_post_name -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_post_name ... ok -ironic.tests.unit.api.controllers.v1.test_port.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_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_error -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ... 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_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_volume.TestGetVolume.test_get_volume_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group -ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ... ok - -POST: /v1/portgroups {'uuid': '46b9c0cd-12cd-4121-aa5f-f0773a3e4fa4', 'name': 'c98372a6-de7c-4b2c-93bb-77578e5b8b8d', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 409 Conflict +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-1d68b5a9-2dbd-49ba-8a50-13d37c6c091c +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-32102023-a1ee-446e-9e6c-15a3f455f885 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}"} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True} +{"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-09-20T14:57:25.971865+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-09-20T14:57:25.971865+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': 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-3c0ff71c-adb6-46ce-8654-cce996c344ac +Openstack-Request-Id: req-40c0381a-7c72-4235-bcea-0d66947be182 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': {'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'} +{"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': '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 -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-70ce97b5-e38a-4406-9f4f-3ceeb3fb73bb +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-67002919-43dd-446a-80ff-d6dad010b32f 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": "2020-08-18T08:12:30.528135+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': '2020-08-18T08:12:30.528135+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 +{"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-09-20T14:57:36.646774+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'} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-662c8fcf-5ba1-4edf-aa30-860456db690d +Openstack-Request-Id: req-df65a96c-4c51-42d3-a77a-3ac404904356 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": "2020-08-18T08:12:31.389455+00:00", "updated_at": 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': '1e3116f0-8849-4af4-b129-49fd3cd5d83b', '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/1e3116f0-8849-4af4-b129-49fd3cd5d83b', 'rel': 'self'}, {'href': 'http://localhost/nodes/1e3116f0-8849-4af4-b129-49fd3cd5d83b', '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 {} -GOT:Response: 400 Bad Request +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': False, 'physical_network': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-e6a0e1bd-707a-4f04-815b-08fa0453443e +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-5dda09f8-30a2-4caa-8f27-ccd518afe3bd 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?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': '2020-08-18T08:12:33.742091+00:00', 'updated_at': None}]} -GET: /v1/volume/connectors?node=test-node {} -GOT:{'connectors': [{'uuid': 'c4616643-834d-4048-a9fa-c97b7807640b', 'type': 'iqn', 'connector_id': 'test-value-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/c4616643-834d-4048-a9fa-c97b7807640b', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c4616643-834d-4048-a9fa-c97b7807640b', 'rel': 'bookmark'}]}, {'uuid': '4e44792a-6fff-4baf-8d5d-d602995ecbb3', 'type': 'iqn', 'connector_id': 'test-value-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/4e44792a-6fff-4baf-8d5d-d602995ecbb3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4e44792a-6fff-4baf-8d5d-d602995ecbb3', 'rel': 'bookmark'}]}, {'uuid': '870ee10d-7c6b-438f-abc0-76d6f069daf0', 'type': 'iqn', 'connector_id': 'test-value-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/870ee10d-7c6b-438f-abc0-76d6f069daf0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/870ee10d-7c6b-438f-abc0-76d6f069daf0', 'rel': 'bookmark'}]}]} -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': '2020-08-18T08:12:34.492979+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_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 - -GET: /v1/portgroups?detail=True {} +{"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-09-20T14:57:40.271024+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': '70100a37-50c7-4a47-90f0-a831322ab969', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-75f0ee32-9074-4844-a627-eba61d83e11d +Openstack-Request-Id: req-84c82a83-69fe-46f8-94a1-a60af2d95eeb 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 {} -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': '2020-08-18T08:12:32.071099+00:00', 'updated_at': None} -GET: /v1/portgroups?address=aa:bb:cc:dd:ee:f1 {} -GOT:{'portgroups': [{'uuid': '24a9d994-ef2f-4f54-a26a-a1e5f83526ad', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/24a9d994-ef2f-4f54-a26a-a1e5f83526ad', 'rel': 'self'}, {'href': 'http://localhost/portgroups/24a9d994-ef2f-4f54-a26a-a1e5f83526ad', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/2a7dfee7-0f21-4a49-97b6-6c070ea00001/ports {} -GOT:{'ports': [{'uuid': '49cc73d5-897f-490a-8ca0-2ce2f81e296c', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/49cc73d5-897f-490a-8ca0-2ce2f81e296c', 'rel': 'self'}, {'href': 'http://localhost/ports/49cc73d5-897f-490a-8ca0-2ce2f81e296c', 'rel': 'bookmark'}]}, {'uuid': '620cfb80-21ee-4af9-b1bf-dfddd85ca834', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/620cfb80-21ee-4af9-b1bf-dfddd85ca834', 'rel': 'self'}, {'href': 'http://localhost/ports/620cfb80-21ee-4af9-b1bf-dfddd85ca834', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups/2a7dfee7-0f21-4a49-97b6-6c070ea00001/ports/detail {} -GOT:{'ports': [{'uuid': '49cc73d5-897f-490a-8ca0-2ce2f81e296c', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '2a7dfee7-0f21-4a49-97b6-6c070ea00001', '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/49cc73d5-897f-490a-8ca0-2ce2f81e296c', 'rel': 'self'}, {'href': 'http://localhost/ports/49cc73d5-897f-490a-8ca0-2ce2f81e296c', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:33.109880+00:00', 'updated_at': None}, {'uuid': '620cfb80-21ee-4af9-b1bf-dfddd85ca834', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '2a7dfee7-0f21-4a49-97b6-6c070ea00001', '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/620cfb80-21ee-4af9-b1bf-dfddd85ca834', 'rel': 'self'}, {'href': 'http://localhost/ports/620cfb80-21ee-4af9-b1bf-dfddd85ca834', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:33.115881+00:00', 'updated_at': None}]} -GET: /v1/portgroups/2a7dfee7-0f21-4a49-97b6-6c070ea00001/ports?limit=1 {} -GOT:{'ports': [{'uuid': '49cc73d5-897f-490a-8ca0-2ce2f81e296c', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/49cc73d5-897f-490a-8ca0-2ce2f81e296c', 'rel': 'self'}, {'href': 'http://localhost/ports/49cc73d5-897f-490a-8ca0-2ce2f81e296c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=1&marker=49cc73d5-897f-490a-8ca0-2ce2f81e296c'} -GET: /v1/portgroups/2a7dfee7-0f21-4a49-97b6-6c070ea00001/ports/b8255c9f-7882-4487-80a4-92546cd568d2 {} -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/2a7dfee7-0f21-4a49-97b6-6c070ea00001/ports/fd059836-5b63-403c-bfca-bfe3c5e100bf {} -GOT:Response: 403 Forbidden +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 70100a37-50c7-4a47-90f0-a831322ab969 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'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-968da64b-0818-4c1c-b43f-6d7625f102dd +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-16e22abc-b87e-41dc-81e9-f31a266f7ffa 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/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'op': 'remove'}] -GOT:Response: 200 OK +{"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-09-20T14:57:44.158663+00:00", "updated_at": null}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_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_types.TestNameType.test_valid_name +ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name ... ok + +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-ebb51c13-972e-4494-b21b-cb09fd88a3b4 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-55f01950-7534-49ce-8dbc-d08fc40dafe9 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": "2020-08-18T08:12:33.743002+00:00", "updated_at": null} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'op': 'remove'}] -GOT:Response: 200 OK +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "841e4ece-b263-44ab-bd55-730e6edb2b99"}, "internal_info": {"tenant_vif_port_id": "841e4ece-b263-44ab-bd55-730e6edb2b99"}, "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-09-20T14:57:24.852029+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': '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-950b87c9-6fe0-481e-bee7-643b4b435254 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-1c71ce10-5d1e-4009-bf78-7e0210269349 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": "2020-08-18T08:12:34.136895+00:00", "updated_at": "2020-08-18T08:12:34.160017+00:00"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra', 'op': 'remove'}] -GOT:Response: 200 OK +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-09-20T14:57:27.342789+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-5b234724-a728-4d79-bb55-50c44aad1555 +Openstack-Request-Id: req-be8e7b81-de21-4815-a571-fe4cef8a9701 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": "2020-08-18T08:12:34.136895+00:00", "updated_at": "2020-08-18T08:12:34.160017+00:00"}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_multi ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_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_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.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_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_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.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_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_add_root -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root ... 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 - -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] -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-2a44eecd-923d-4376-841b-8695632862b5 +Openstack-Request-Id: req-9b5f72d4-cb09-4b56-8277-b3732d7fd55d 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": "2020-08-18T08:12:31.542827+00:00", "updated_at": "2020-08-18T08:12:31.705836+00:00"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] -GOT:Response: 200 OK +X-Openstack-Ironic-Api-Version: 1.14 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/portgroups/detail?sort_key=mode {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-cbd339a8-3b40-4afd-a5b9-95d312c9478a +Openstack-Request-Id: req-6b7d054d-ca0a-4278-90e7-f0f126a8e117 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": "2020-08-18T08:12:31.874962+00:00", "updated_at": "2020-08-18T08:12:31.978411+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', 'internal_info': 'info'} -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/portgroups {} +GOT:{'portgroups': []} +GET: /v1/portgroups/?fields=address,properties {} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-c0b71e3c-9d0c-45da-8896-45be531690c1 +Openstack-Request-Id: req-5131bddd-65e7-488b-81ef-9aa37104f00e 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': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +X-Openstack-Ironic-Api-Version: 1.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,extra {} +GOT:{'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]} +GET: /v1/portgroups {} +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 Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-26710b90-851e-4308-9167-c9367b7cbf36 +Openstack-Request-Id: req-5ae119b2-e0d3-4548-b2a4-74fac230e77b 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} -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'} +X-Openstack-Ironic-Api-Version: 1.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"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-fdf83ce8-cdf4-4277-9d7e-dc8e6cd19f1b -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}"} -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-a3a37011-b612-4bad-bd17-03f198008972 +Openstack-Request-Id: req-cb0ac83f-deaf-4f33-86c2-669c754cb9ba 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/bcf90cd4-2fe3-469c-83aa-e37499348326 {'callback_url': 'url'} -GOT:Response: 404 Not Found +{"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', '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-bb10941d-93df-4647-b03b-f53c13fb4ce6 +Openstack-Request-Id: req-2e04dc44-b2d2-4e63-ad1d-7c7187dfd184 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/lookup?node_uuid=abbcb0ab-5543-4876-bdc3-aad63a222a8f {} -GOT:{'node': {'uuid': 'abbcb0ab-5543-4876-bdc3-aad63a222a8f', '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/abbcb0ab-5543-4876-bdc3-aad63a222a8f', 'rel': 'self'}, {'href': 'http://localhost/nodes/abbcb0ab-5543-4876-bdc3-aad63a222a8f', '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/ {} -GOT:Response: 404 Not Found +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-09-20T14:57:41.083771+00:00", "updated_at": "2021-09-20T14:57:42.264354+00:00"} +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-4471709c-7ac8-4024-a21e-56862f136a5f +Openstack-Request-Id: req-0ea36412-b555-4dd5-bfaf-350eb853330e 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 {} -GOT:{'connectors': [{'uuid': '4fa0d2d7-cc77-45d6-9d69-df56e0a23fc2', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/4fa0d2d7-cc77-45d6-9d69-df56e0a23fc2', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4fa0d2d7-cc77-45d6-9d69-df56e0a23fc2', 'rel': 'bookmark'}]}, {'uuid': '5aaf1e5d-0d50-49d1-830a-4b3a058399e4', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/5aaf1e5d-0d50-49d1-830a-4b3a058399e4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5aaf1e5d-0d50-49d1-830a-4b3a058399e4', 'rel': 'bookmark'}]}, {'uuid': '718027d8-afb4-49a4-a95c-b21c59508c96', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/718027d8-afb4-49a4-a95c-b21c59508c96', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/718027d8-afb4-49a4-a95c-b21c59508c96', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=718027d8-afb4-49a4-a95c-b21c59508c96'}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.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_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_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_portgroup.TestPatchExtraVifPortId.test_remove_extra_vif_port_id_not_internal +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": "2021-09-20T14:57:43.372593+00:00", "updated_at": "2021-09-20T14:57:44.633589+00:00"}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.TestPatch.test_replace_non_existent_node_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.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_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_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_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_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_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_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_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_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.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_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_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_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_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_replace_physical_network -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ... 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_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_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_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.controllers.v1.test_volume_connector.TestPatch.test_add_root -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.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_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_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_types.TestJsonType.test_valid_values -ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_valid_values ... ok - -DELETE: /v1/portgroups/pg.1 -GOT:Response: 204 No Content -Openstack-Request-Id: req-377e12da-b5d2-416e-a4fd-037c3c2b3fab -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 +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_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_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_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_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_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_volume +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_volume ... ok -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/detail {} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-d3a55eb5-b8e0-430e-b10d-f42679af6537 -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=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/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/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} -GOT:Response: 404 Not Found +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-acd2b03b-ce7c-4cf5-90df-7a6f02cdf095 +Openstack-Request-Id: req-90292ae5-8d89-4e27-9541-b32974cd9f9e 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}"} -GET: /v1/portgroups?sort_key=mode {} -GOT:{'portgroups': [{'uuid': 'cb719264-99ff-42ca-b76a-093b13f5612c', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/cb719264-99ff-42ca-b76a-093b13f5612c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/cb719264-99ff-42ca-b76a-093b13f5612c', 'rel': 'bookmark'}]}, {'uuid': '321a9d8c-8f97-475e-ae05-b9101e25d70f', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/321a9d8c-8f97-475e-ae05-b9101e25d70f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/321a9d8c-8f97-475e-ae05-b9101e25d70f', 'rel': 'bookmark'}]}, {'uuid': 'c44726c8-e1f2-431d-9559-597107966277', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/c44726c8-e1f2-431d-9559-597107966277', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c44726c8-e1f2-431d-9559-597107966277', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?sort_key=foo {} +{"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-09-20T14:57:33.399541+00:00", "updated_at": null} +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-31f9c51f-22ff-43f6-b44e-f46cbc92bb65 +Openstack-Request-Id: req-59b0875d-0ec9-425e-a236-5f24d2dcf5d4 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 {} -GOT:Response: 400 Bad Request +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received invalid-format.\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-d935633e-85c0-44e1-9b31-e35270a83d19 +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": "2021-09-20T14:57:37.424118+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-456ff9d2-4d37-4dca-a8a5-cd12ad2957a8 +Openstack-Request-Id: req-ba585a42-a628-4005-a25d-c41fd9891094 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 {} -GOT:Response: 400 Bad Request +{"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-09-20T14:57:40.128345+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'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-f299ca46-105f-4670-b739-77958d7a73f3 +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": "2021-09-20T14:57:42.249517+00:00", "updated_at": "2021-09-20T14:57:43.474610+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 -Openstack-Request-Id: req-cf33aa11-9051-46b0-ae11-90b500baa8ca +Location: http://localhost/v1/portgroups/f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40 +Openstack-Request-Id: req-0e24c7e9-6dfe-4e41-b72a-5456f0175e40 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 {} +{"uuid": "f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40", "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/f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40", "rel": "self"}, {"href": "http://localhost/portgroups/f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40/ports", "rel": "self"}, {"href": "http://localhost/portgroups/f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40/ports", "rel": "bookmark"}], "created_at": "2021-09-20T14:57:45.232045+00:00", "updated_at": null} +GET: /v1/portgroups/f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40 {} +GOT:{'uuid': 'f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40', '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/f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f1d0d3da-9bcd-4de8-850e-5c5cbcc52b40/ports', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:45.232045+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', 'internal_info': 'info'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0e376c63-0e0d-4d57-9f2b-b91001fb7583 +Openstack-Request-Id: req-dc398965-eae4-43a0-8f47-912e47c6bfc2 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': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] +{"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.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_adopt_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_adopt_verbs ... 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_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_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.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_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_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_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_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_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_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_utils.TestVendorPassthru.test_vendor_passthru_async +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async ... ok + +PATCH: /v1/ports/95607d50-f4db-4998-b49d-9c3fbacfd681 [{'path': '/extra/vif_port_id', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-5f787cf0-7434-45ae-ac76-4cbe7d989fd8 +Openstack-Request-Id: req-04bd5526-b19b-49c1-ad4a-26e07e2541d6 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": "2020-08-18T08:12:35.258148+00:00", "updated_at": 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.28 +{"uuid": "95607d50-f4db-4998-b49d-9c3fbacfd681", "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/95607d50-f4db-4998-b49d-9c3fbacfd681", "rel": "self"}, {"href": "http://localhost/ports/95607d50-f4db-4998-b49d-9c3fbacfd681", "rel": "bookmark"}], "created_at": "2021-09-20T14:57:27.728700+00:00", "updated_at": "2021-09-20T14:57:28.943463+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-0280654d-b6c2-4c29-97ee-d065c3f39079 +Openstack-Request-Id: req-32b0227b-338c-4c48-be0a-36a9f1dffc40 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\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] -GOT:Response: 200 OK +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-46697bb3-f302-4df6-b54b-751a90204541 +Openstack-Request-Id: req-bfcbacd3-1795-492a-a09f-10a308a1f63d 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": "2020-08-18T08:12:35.718131+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'} +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +PATCH: /v1/ports/0bc64267-08ff-4dbd-a4db-eebb6ed04e3e [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found +Content-Type: application/json +Openstack-Request-Id: req-d724f9fc-b192-4284-91a3-3ac691176f09 +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 0bc64267-08ff-4dbd-a4db-eebb6ed04e3e 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': '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/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-909a51d3-44f5-4251-a3f5-4270234efe53 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-2d543087-4cfe-4ad4-b90f-32bf38b0d8ad 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}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_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_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_port.TestPatch.test_replace_portgroup_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_utils.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_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_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_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.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_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_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_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_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_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_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_port.TestPatch.test_update_in_inspecting_not_allowed -ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed ... ok -ironic.tests.unit.api.controllers.v1.test_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_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.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_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_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_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_allow_traits -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_traits ... 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_utils.TestApiUtils.test_check_allow_clean_verbs -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_clean_verbs ... ok - -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/non-existent', 'op': 'remove'}] -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": 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-09-20T14:57:36.666112+00:00", "updated_at": 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-ff49002d-0212-4eda-8b1d-7624c208940f +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-8772e315-20bc-4c51-9182-228881753b43 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/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] -GOT:Response: 400 Bad Request +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-09-20T14:57:39.170911+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: 406 Not Acceptable Content-Type: application/json -Openstack-Request-Id: req-649e8f3a-4a44-4e61-969f-04dd2ccae7a7 +Openstack-Request-Id: req-3990e09f-4442-4c38-b6f4-8b90f9feee85 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 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +GET: /v1/portgroups {} +GOT:{'portgroups': [{'uuid': '293631ad-f988-4dff-ba99-3644336fab2e', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/293631ad-f988-4dff-ba99-3644336fab2e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/293631ad-f988-4dff-ba99-3644336fab2e', 'rel': 'bookmark'}]}, {'uuid': 'b75c3c70-19c4-4ed0-91a2-0682a14e7d94', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/b75c3c70-19c4-4ed0-91a2-0682a14e7d94', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b75c3c70-19c4-4ed0-91a2-0682a14e7d94', 'rel': 'bookmark'}]}, {'uuid': 'cfa2fca2-dd38-48d3-a6da-360d966f32ba', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/cfa2fca2-dd38-48d3-a6da-360d966f32ba', 'rel': 'self'}, {'href': 'http://localhost/portgroups/cfa2fca2-dd38-48d3-a6da-360d966f32ba', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=3&marker=cfa2fca2-dd38-48d3-a6da-360d966f32ba'} +GET: /v1/portgroups?detail=False&fields=internal_info {} +GOT:{'portgroups': [{'internal_info': {'bar': 'buzz'}, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups/detail?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-09-20T14:57:46.326843+00:00', 'updated_at': None}]} +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-fa10a5fe-5486-406a-bcf8-8313aae2b152 +Openstack-Request-Id: req-4e7e098d-5aa5-4794-a525-a92b1fc37de7 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": "2020-08-18T08:12:35.271856+00:00", "updated_at": null} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] -GOT:Response: 200 OK +{"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-09-20T14:57:48.234924+00:00", "updated_at": "2021-09-20T14:57:48.424026+00:00"}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.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_versions.TestMaxVersionString.test_max_version_pinned +ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_pinned ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.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.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 + +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-7f87b28b-618b-4933-8abb-22da0e69198f +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-e6bd598d-eb2a-47e0-aba5-18f90891b254 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": "2020-08-18T08:12:35.423701+00:00", "updated_at": "2020-08-18T08:12:35.524207+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 +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": "2021-09-20T14:57:34.431157+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-5272d43b-291a-4913-9187-5360fc4bf6ef +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-045e3968-ab5e-459b-87c2-9bb0d978ecc5 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": "2020-08-18T08:12:35.612960+00:00", "updated_at": "2020-08-18T08:12:35.795983+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'} +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-09-20T14:57:37.222612+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 -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-b3c6a2fb-2975-43bb-924a-11b2816a2077 +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-06fcdb85-e306-4dba-af96-385bed237c5d 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": "2020-08-18T08:12:36.036084+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': '2020-08-18T08:12:36.036084+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': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +{"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-09-20T14:57:39.841476+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': '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-7eb7e8b3-31f8-47b0-ab1b-c46171b8c613 +Openstack-Request-Id: req-4ad68347-6b3f-4976-a930-8dd84b928dba 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}"} -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'} +{"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': '417333ee-1545-4f43-8501-2a491667914c'}, '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/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-bbb7112d-07c5-4c84-8365-70ad911190da +Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-dc337ea0-41d3-4dcb-8638-c80222fd0414 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": "2020-08-18T08:12:36.708922+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.TestHeartbeat.test_ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ... 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.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_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_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_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_port.TestPost.test_create_port_novif_nopxe_noportgroup -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_noportgroup ... ok - -GET: /v1/portgroups?address=invalid-mac-format {} +{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "extra": {"vif_port_id": "417333ee-1545-4f43-8501-2a491667914c"}, "internal_info": {"tenant_vif_port_id": "417333ee-1545-4f43-8501-2a491667914c"}, "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-09-20T14:57:43.963299+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': '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-4e9dda01-30f4-4476-8fa2-13b5c5e496f8 +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/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-3bad760e-afde-48c3-bed3-f00cb8080486 +Openstack-Request-Id: req-30ac4dd9-b7f9-495a-9398-88d8dee85158 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}"} -GET: /v1/portgroups/36ad3652-1c28-40d5-a7b7-6b4cd647a5d2/ports {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"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 "} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] -GOT:Response: 200 OK +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-09-20T14:57:49.975444+00:00', 'updated_at': None}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_sort_key +ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key ... 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_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_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.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.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.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_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_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_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.TestBooleanType.test_invalid_value +ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value ... 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_portgroup.TestPost.test_create_portgroup_error +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_error ... ok + +GOT:{'ports': [{'uuid': 'ca62f160-030b-493b-9118-e7930eb058d8', 'address': '52:54:00:cf:2d:30', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '69f7a4f5-5613-4c4f-9f3f-beef9075b36f', '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/ca62f160-030b-493b-9118-e7930eb058d8', 'rel': 'self'}, {'href': 'http://localhost/ports/ca62f160-030b-493b-9118-e7930eb058d8', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:29.511582+00:00', 'updated_at': None}, {'uuid': '5ca5e04c-da6c-4169-aa65-7aa523a6d2db', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '69f7a4f5-5613-4c4f-9f3f-beef9075b36f', '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/5ca5e04c-da6c-4169-aa65-7aa523a6d2db', 'rel': 'self'}, {'href': 'http://localhost/ports/5ca5e04c-da6c-4169-aa65-7aa523a6d2db', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:29.585975+00:00', 'updated_at': None}]} +GET: /v1/portgroups/69f7a4f5-5613-4c4f-9f3f-beef9075b36f/ports?limit=1 {} +GOT:{'ports': [{'uuid': 'ca62f160-030b-493b-9118-e7930eb058d8', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/ca62f160-030b-493b-9118-e7930eb058d8', 'rel': 'self'}, {'href': 'http://localhost/ports/ca62f160-030b-493b-9118-e7930eb058d8', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&limit=1&marker=ca62f160-030b-493b-9118-e7930eb058d8'} +GET: /v1/portgroups/69f7a4f5-5613-4c4f-9f3f-beef9075b36f/ports/941e14a8-4e92-4f41-9856-fe910e9643f4 {} +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/69f7a4f5-5613-4c4f-9f3f-beef9075b36f/ports/3382cd62-19f2-45f6-96d2-16459035752c {} +GOT:Response: 403 Forbidden Content-Type: application/json -Openstack-Request-Id: req-099e47c4-472c-499f-9d4c-739e9cb39838 +Openstack-Request-Id: req-f2e81e6c-ab6f-4d1d-ac82-2c9928ed5823 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": "2020-08-18T08:12:33.988105+00:00", "updated_at": null} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-bc72a6d9-5596-4af1-a392-3cc321c4f8f0 +Openstack-Request-Id: req-a88c1b84-7fd8-4ca2-b99c-e81092d09f63 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}"} +{"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_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b6738e60-a326-4427-af33-6303ced2b738 +Openstack-Request-Id: req-d880c27d-2571-4e91-b3a5-97006d018d77 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": "2020-08-18T08:12:34.587412+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: 409 Conflict +{"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-09-20T14:57:36.272972+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 -Openstack-Request-Id: req-1588693b-9ed6-4de9-9cd9-40a114f67fc4 -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/50366ace-59ed-41c4-954e-c0df8086b564 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +PATCH: /v1/portgroups/c4d2debf-1f6e-44ad-8381-2d2aee33da0b [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0e571807-3d08-45fd-8159-0dd509b3ed0c +Openstack-Request-Id: req-375b96b7-7cc3-44f9-946b-8e28a5796938 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 50366ace-59ed-41c4-954e-c0df8086b564 could not be found.\", \"debuginfo\": null}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup c4d2debf-1f6e-44ad-8381-2d2aee33da0b could not be found.\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'invalid-format', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-2922b173-c957-4ff8-9347-535469b6e29b +Openstack-Request-Id: req-d9871e20-a9da-4f4e-a226-86db07847597 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": "2020-08-18T08:12:36.040356+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'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address 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, 'node_uuid': 'invalid-format'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f010a3f7-20df-4651-8239-66f3b08a0dd8 +Openstack-Request-Id: req-1dd15ef8-0567-4605-9eab-2d603dc35e20 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', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"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, 'mode': '802.3ad', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 406 Not Acceptable Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-b31b5565-76d1-46fe-a5a3-4b7544d647c8 +Openstack-Request-Id: req-12d4d51f-2aec-4151-9f31-fbb8ab7e77d6 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": "2020-08-18T08:12:36.811635+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': '2020-08-18T08:12:36.811635+00:00', 'updated_at': None}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.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_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_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_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_port.TestPost.test_create_port_generate_uuid -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_generate_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_utils.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_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_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_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_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_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_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_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.TestBooleanType.test_invalid_value -ironic.tests.unit.api.controllers.v1.test_types.TestBooleanType.test_invalid_value ... 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_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_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_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_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_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 +X-Openstack-Ironic-Api-Version: 1.25 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 406 Not Acceptable +Content-Type: application/json +Openstack-Request-Id: req-5245d338-96da-404b-b00e-ebf9f651103d +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/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11 {} +GOT:{'node': {'uuid': '8db751fa-3d54-41ae-8d7f-59c8ff757e09', '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/8db751fa-3d54-41ae-8d7f-59c8ff757e09', 'rel': 'self'}, {'href': 'http://localhost/nodes/8db751fa-3d54-41ae-8d7f-59c8ff757e09', '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?node_uuid=037999bb-5078-4cef-954b-c3546cc8c496 {}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.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_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_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_portgroup.TestPatch.test_remove_address +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ... ok +ironic.tests.unit.api.controllers.v1.test_utils.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_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_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_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_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_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_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_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_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_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_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_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.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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 -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': '2020-08-18T08:12:33.703846+00:00', 'updated_at': None}]} -GET: /v1/ports?address=aa:bb:cc:dd:ee:f1 {} -GOT:{'ports': [{'uuid': 'ae28333e-2ba7-4b1b-bc86-8305d1410daf', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/ae28333e-2ba7-4b1b-bc86-8305d1410daf', 'rel': 'self'}, {'href': 'http://localhost/ports/ae28333e-2ba7-4b1b-bc86-8305d1410daf', 'rel': 'bookmark'}]}]} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet1', 'op': 'add'}] +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-86eab35f-a6b3-4988-8cb2-b6f5104045d8 +Openstack-Request-Id: req-4b041855-f2cf-43ad-833e-9d1b24cedd1d X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.34 +X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'op': 'remove'}] -GOT:Response: 406 Not Acceptable +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-54e59502-b882-4b01-8083-2c46f6832fba +Openstack-Request-Id: req-f9ce9a6f-740e-402a-a858-dacd05072be9 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/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] -GOT:Response: 200 OK +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-09-20T14:57:31.372217+00:00", "updated_at": "2021-09-20T14:57:32.962237+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 -Openstack-Request-Id: req-6213af83-2d5e-4a92-ba19-5808aeb482fe +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-40b1f1c0-c5c1-4dce-bf16-82e041c0a2cb 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": "2020-08-18T08:12:35.873366+00:00", "updated_at": "2020-08-18T08:12:35.978567+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': 'b4a5d707-e6de-485d-abfb-18a4798af831', 'op': 'replace'}] -GOT:Response: 200 OK +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-09-20T14:57:35.104061+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 Content-Type: application/json -Openstack-Request-Id: req-3b852d93-2762-4186-8b51-56084ba7c10b +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-1ee5218b-1d26-459d-93b7-9b835faf8363 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": "b4a5d707-e6de-485d-abfb-18a4798af831", "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": "2020-08-18T08:12:36.146310+00:00", "updated_at": "2020-08-18T08:12:36.336592+00:00"} -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.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-09-20T14:57:37.072437+00:00", "updated_at": null} +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 -Openstack-Request-Id: req-f307dcd6-92c8-4f19-8832-b0d4daa6d5e6 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-c4d5bacc-86f1-4426-9c70-c30aac7d6e68 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': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', '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": {"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-09-20T14:57:43.738337+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: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d033d55a-eb65-4053-9d48-db51ba216e39 +Openstack-Request-Id: req-cb618fe8-d9fd-4ac5-9167-f5c365f50f19 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': {}, '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 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a MAC address but received 52-54-00-cf-2d-31.\", \"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'}]} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True&fields=connector_id,extra {} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-e0785bce-86fe-4620-a7d8-3deb279ddcfe +Openstack-Request-Id: req-2ec1c8b7-d698-4404-b6bc-21564206ddd0 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": "2020-08-18T08:12:37.252748+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: 409 Conflict +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-d8e61c0f-fa48-40e8-bada-e7cf94249244 +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +GET: /v1/volume/connectors/7020b41d-86bc-4c85-afd0-f29a4fc31806 {} +GOT:{'uuid': '7020b41d-86bc-4c85-afd0-f29a4fc31806', '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/7020b41d-86bc-4c85-afd0-f29a4fc31806', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7020b41d-86bc-4c85-afd0-f29a4fc31806', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:56.894043+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_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_types.TestMacAddressType.test_invalid_mac_addr +ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ... ok + +DELETE: /v1/portgroups/pg.1.json +GOT:Response: 204 No Content +Openstack-Request-Id: req-e2ecb347-00dd-4c03-929a-f8ae30367c21 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': {'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_utils.TestApiUtils.test_check_allow_specify_fields -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_specify_fields ... ok -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '3453e948-ef20-429a-89cc-09ee4917097c', 'op': 'add'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-e6ea538b-78f4-41a2-b377-99fc27d44e9a -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": "3453e948-ef20-429a-89cc-09ee4917097c", "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": "2020-08-18T08:12:34.248995+00:00", "updated_at": "2020-08-18T08:12:34.537477+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 1234, 'op': 'replace'}] +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-09-20T14:57:39.366711+00:00', 'updated_at': None}]} +GET: /v1/portgroups?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cb0c2281-449e-4ae3-93ef-591773076027 +Openstack-Request-Id: req-39c8043a-29d6-4265-993e-d4713cbfa12b 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} +GET: /v1/portgroups?fields=uuid,extra {} +GOT:{'portgroups': [{'uuid': '66697f94-7908-41ca-855c-956e68d69ddf', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/66697f94-7908-41ca-855c-956e68d69ddf', 'rel': 'self'}, {'href': 'http://localhost/portgroups/66697f94-7908-41ca-855c-956e68d69ddf', 'rel': 'bookmark'}]}, {'uuid': 'd7453ab6-2deb-4e3e-b0b5-5a2c4dfac878', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/d7453ab6-2deb-4e3e-b0b5-5a2c4dfac878', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d7453ab6-2deb-4e3e-b0b5-5a2c4dfac878', 'rel': 'bookmark'}]}, {'uuid': '1414a9a9-45ee-4eff-841f-dad58b53b827', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/1414a9a9-45ee-4eff-841f-dad58b53b827', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1414a9a9-45ee-4eff-841f-dad58b53b827', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups {} +GOT:{'portgroups': [{'uuid': 'bb022b00-36bc-4ca8-8ad9-614e3e428fbc', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/bb022b00-36bc-4ca8-8ad9-614e3e428fbc', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bb022b00-36bc-4ca8-8ad9-614e3e428fbc', 'rel': 'bookmark'}]}, {'uuid': '099c6678-fa93-4d29-b62a-bca572220def', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/099c6678-fa93-4d29-b62a-bca572220def', 'rel': 'self'}, {'href': 'http://localhost/portgroups/099c6678-fa93-4d29-b62a-bca572220def', 'rel': 'bookmark'}]}, {'uuid': 'e1117a06-7604-4204-8506-99f917fe730a', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/e1117a06-7604-4204-8506-99f917fe730a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e1117a06-7604-4204-8506-99f917fe730a', 'rel': 'bookmark'}]}, {'uuid': 'd4929834-02a6-483b-bbaf-b03aee2d1e92', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/d4929834-02a6-483b-bbaf-b03aee2d1e92', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d4929834-02a6-483b-bbaf-b03aee2d1e92', 'rel': 'bookmark'}]}, {'uuid': 'c4a47aef-fc33-48a3-a41f-ee70c2ced90f', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/c4a47aef-fc33-48a3-a41f-ee70c2ced90f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c4a47aef-fc33-48a3-a41f-ee70c2ced90f', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?address=aa:bb:cc:dd:ee:ff {} +GOT:{'portgroups': []} +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-0d5fec9c-a0f3-4e65-b934-2ebde3756539 +Openstack-Request-Id: req-cff4ec58-7d2c-4e97-be12-8a3a20b39af2 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": "2020-08-18T08:12:35.009018+00:00", "updated_at": "2020-08-18T08:12:35.152058+00:00"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] +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": "2021-09-20T14:57:49.126636+00:00", "updated_at": null} +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-53d5e268-e6c4-449b-9c3a-10eba25121a6 -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': '/portgroup_uuid', 'value': '9bd1da9b-418d-4285-bbee-0980860d8b78', 'op': 'replace'}] -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-072bc5ae-a30b-4906-8ef4-084e39b454f5 +Openstack-Request-Id: req-a70a873f-37f7-489a-8abb-cbe7da9bedd5 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}"} -PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '8a53162e-3d91-45f8-8663-c4c2dc280459', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '01f295fe-ff20-45ee-a61e-6b317ce2d540', 'op': 'add'}] +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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-fdac23ce-8f12-49c1-ae8a-6da50dfc3a3e -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": "01f295fe-ff20-45ee-a61e-6b317ce2d540", "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": "2020-08-18T08:12:35.765467+00:00", "updated_at": "2020-08-18T08:12:35.866205+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-0c2a8cd7-966e-4081-926e-ac4b769a8595 -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 {'address': '52:54:00: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 -Location: http://localhost/v1/ports/d07d77a7-3c80-484d-87d3-4a19d15a749b -Openstack-Request-Id: req-c3236e45-fdec-4cdb-83a2-1bc156d01f3b +Openstack-Request-Id: req-f351b400-66ea-44e4-b556-5f61f2a40a15 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "d07d77a7-3c80-484d-87d3-4a19d15a749b", "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/d07d77a7-3c80-484d-87d3-4a19d15a749b", "rel": "self"}, {"href": "http://localhost/ports/d07d77a7-3c80-484d-87d3-4a19d15a749b", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:37.209781+00:00", "updated_at": null} -GET: /v1/ports/d07d77a7-3c80-484d-87d3-4a19d15a749b {} -GOT:{'uuid': 'd07d77a7-3c80-484d-87d3-4a19d15a749b', '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/d07d77a7-3c80-484d-87d3-4a19d15a749b', 'rel': 'self'}, {'href': 'http://localhost/ports/d07d77a7-3c80-484d-87d3-4a19d15a749b', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:37.209781+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': '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": {"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-09-20T14:57:53.031573+00:00", "updated_at": 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-3ea9f9d3-0f8c-4215-9e9d-72e48e376961 +Openstack-Request-Id: req-0c6dbfc7-d7a1-4fb2-a0e9-e7760f226b99 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': '52:54:00: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'}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_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_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_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_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path ... ok -ironic.tests.unit.api.controllers.v1.test_utils.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_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports -ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_nopxe_portgroup_standalone_ports ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name -ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name ... ok -ironic.tests.unit.api.controllers.v1.test_utils.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 +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-09-20T14:57:55.263026+00:00", "updated_at": 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'}]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_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_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_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_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_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_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.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_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_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.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_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_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_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_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_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_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.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_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_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_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_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_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_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_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_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_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_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_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_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.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_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_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_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_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_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.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 -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_byid ... 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_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_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_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_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_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_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_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_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_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_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_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_allow_inject_nmi +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_inject_nmi ... 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_get_patch_values_multiple_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ... ok +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_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_unknown_verbs +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allow_unknown_verbs ... 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_detail_against_single +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single ... ok +ironic.tests.unit.api.controllers.v1.test_utils.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_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_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_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_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_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_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_driver_vendor_passthru_sync +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync ... ok +ironic.tests.unit.api.controllers.v1.test_utils.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.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.TestVendorPassthru.test_method_not_specified +ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified ... ok ironic.tests.unit.api.controllers.v1.test_utils.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_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_collection_links -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links ... 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_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_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_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_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_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_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_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_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_versions.TestVersionConstants.test_duplicates +ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... 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 -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=uuid {} -GOT:{'connectors': [{'uuid': '021faba1-1923-4997-9285-670be4e0925c', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/021faba1-1923-4997-9285-670be4e0925c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/021faba1-1923-4997-9285-670be4e0925c', 'rel': 'bookmark'}]}, {'uuid': 'd119fd4d-ad1f-470d-ad74-f3adf55c5044', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/d119fd4d-ad1f-470d-ad74-f3adf55c5044', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/d119fd4d-ad1f-470d-ad74-f3adf55c5044', 'rel': 'bookmark'}]}, {'uuid': 'e60d8ebc-4208-45c7-9f26-79808686fc10', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/e60d8ebc-4208-45c7-9f26-79808686fc10', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/e60d8ebc-4208-45c7-9f26-79808686fc10', 'rel': 'bookmark'}]}]} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] +GET: /v1/portgroups?sort_key=uuid {} +GOT:{'portgroups': [{'uuid': '34cef8c9-34b6-4498-bc59-8022ddb42b89', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/34cef8c9-34b6-4498-bc59-8022ddb42b89', 'rel': 'self'}, {'href': 'http://localhost/portgroups/34cef8c9-34b6-4498-bc59-8022ddb42b89', 'rel': 'bookmark'}]}, {'uuid': 'b57211ba-f3f2-47e7-8b53-71c1321723b0', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/b57211ba-f3f2-47e7-8b53-71c1321723b0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/b57211ba-f3f2-47e7-8b53-71c1321723b0', 'rel': 'bookmark'}]}, {'uuid': 'e381bf76-ca84-4a36-bb5b-44e70f41d9e6', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/e381bf76-ca84-4a36-bb5b-44e70f41d9e6', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e381bf76-ca84-4a36-bb5b-44e70f41d9e6', 'rel': 'bookmark'}]}]} +GET: /v1/portgroups?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4cd9d4e4-4abc-45d9-bb57-86d3281df457 +Openstack-Request-Id: req-fb6febc6-c8a6-4496-8902-819230e8bbbe 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}"} -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\": \"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-40db08d9-693b-417f-831b-8f3dc5639d90 +Openstack-Request-Id: req-09476392-bc0f-47fd-b682-a26463d9f0fb 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": "2020-08-18T08:12:36.051016+00:00", "updated_at": null} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/portgroups?sort_key=internal_info {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-d43159ac-11cf-4c03-8a1e-64bf123ddf43 +Openstack-Request-Id: req-772e8530-ea13-4665-992d-3bef2f61c6b4 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": "2020-08-18T08:12:36.419223+00:00", "updated_at": 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 +{"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 -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-cba747e2-a351-45f8-ae2e-d1b49559d7a6 +Openstack-Request-Id: req-22f1cfbd-c8df-4ca6-a089-acb21e91fd07 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', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 400 Bad Request +{"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': '/address', 'value': 'aa:aa:aa:aa:aa:aa', 'op': 'replace'}] +GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-22e0d925-cc96-45a0-a870-78289dcad0d7 +Openstack-Request-Id: req-0500d2ed-71d2-4d1d-ba68-771d33475e90 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}"} -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\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": 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 +{"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', 'op': 'remove'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-bd65c0aa-ab56-4726-b8f6-8281b84b011e +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-09-20T14:57:59.750239+00:00", "updated_at": "2021-09-20T14:58:01.289636+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/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-507c60e6-ca9a-4bd3-a691-979cc0e9cd5e +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-158b72a9-87f9-46fd-b260-53b5755603c9 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": "2020-08-18T08:12:37.434631+00:00", "updated_at": null} -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 409 Conflict +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} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-270eab2d-507e-4208-99cd-a23542395e34 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-1fdd5c3d-e707-4d83-8842-1b810ff78259 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 {} +{"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-09-20T14:58:05.719990+00:00", "updated_at": null}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_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_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_detail_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_invalid_api_version ... ok + +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-09-20T14:57:44.158663+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': '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-7103e83d-1733-4a48-a578-c82659ac4e69 +Openstack-Request-Id: req-1bcc8ae4-4b73-4003-9837-aaf10f1ffa03 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}"} -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': '2020-08-18T08:12:38.218610+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.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.TestPatch.test_replace_node_id -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id ... ok - -GET: /v1/volume/connectors?detail=True {} +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}"} +DELETE: /v1/portgroups/blah 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'}]}]} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] -GOT:Response: 200 OK +Openstack-Request-Id: req-f920247c-b083-429a-8471-6714bd1acabf +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 {} +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/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?address=invalid-mac-format {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-b02d41ca-307d-45bd-89a0-3bc3c30d1f9d +Openstack-Request-Id: req-519100cf-e685-4817-8b8a-a35f8566301a 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": "2020-08-18T08:12:35.799263+00:00", "updated_at": "2020-08-18T08:12:35.823335+00:00"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] +{"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?sort_key=mode {} +GOT:{'portgroups': [{'uuid': '46562ecf-ce96-4d5d-b41e-c22bcc80700e', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/46562ecf-ce96-4d5d-b41e-c22bcc80700e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/46562ecf-ce96-4d5d-b41e-c22bcc80700e', 'rel': 'bookmark'}]}, {'uuid': '4f58f9bf-7318-4b9d-a3a8-fb706b79449a', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/4f58f9bf-7318-4b9d-a3a8-fb706b79449a', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4f58f9bf-7318-4b9d-a3a8-fb706b79449a', 'rel': 'bookmark'}]}, {'uuid': '65d0120d-581a-49f0-b4cf-ddef59efb4f0', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/65d0120d-581a-49f0-b4cf-ddef59efb4f0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/65d0120d-581a-49f0-b4cf-ddef59efb4f0', 'rel': 'bookmark'}]}]} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-efff340a-ae55-4c08-be09-5de0f2e36dd4 +Openstack-Request-Id: req-991fbb46-6759-4bd0-8c37-d235f1879385 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": "2020-08-18T08:12:35.799263+00:00", "updated_at": "2020-08-18T08:12:35.823335+00:00"} -GET: /v1/volume/targets/?limit=3 {} -GOT:{'targets': [{'uuid': 'd2a55940-4951-4b8a-8c20-13dfe9da3ef9', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/d2a55940-4951-4b8a-8c20-13dfe9da3ef9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d2a55940-4951-4b8a-8c20-13dfe9da3ef9', 'rel': 'bookmark'}]}, {'uuid': '850f6276-c238-49fc-b4da-2c4a6d9503a8', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/850f6276-c238-49fc-b4da-2c4a6d9503a8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/850f6276-c238-49fc-b4da-2c4a6d9503a8', 'rel': 'bookmark'}]}, {'uuid': '5f71bdc7-abd2-4db4-b5bc-21d57cba5f0d', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/5f71bdc7-abd2-4db4-b5bc-21d57cba5f0d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5f71bdc7-abd2-4db4-b5bc-21d57cba5f0d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=5f71bdc7-abd2-4db4-b5bc-21d57cba5f0d'} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} +{"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-09-20T14:57:57.547121+00:00", "updated_at": null} +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-f20c895e-ab78-42b3-995e-40507099e6e3 +Openstack-Request-Id: req-c20ab405-1eb5-4626-af8c-248362896af3 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?detail=True&fields=boot_index,extra {} +{"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': '/mode', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c33f5df7-5d11-430a-b10c-1d282011dfc9 +Openstack-Request-Id: req-ea9d9d1a-3851-4dac-82cb-532fcd7b5e47 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/f96b8a53-eec7-4646-967e-c1f4879f69c9 {} -GOT:{'uuid': 'f96b8a53-eec7-4646-967e-c1f4879f69c9', '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/f96b8a53-eec7-4646-967e-c1f4879f69c9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f96b8a53-eec7-4646-967e-c1f4879f69c9', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:37.366431+00:00', 'updated_at': None} -GET: /v1/volume/targets/f96b8a53-eec7-4646-967e-c1f4879f69c9 {} -GOT:{'uuid': 'f96b8a53-eec7-4646-967e-c1f4879f69c9', '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/f96b8a53-eec7-4646-967e-c1f4879f69c9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f96b8a53-eec7-4646-967e-c1f4879f69c9', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:37.366431+00:00', 'updated_at': None} -GET: /volume/targets/f96b8a53-eec7-4646-967e-c1f4879f69c9 {} -GOT:{'uuid': 'f96b8a53-eec7-4646-967e-c1f4879f69c9', '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/f96b8a53-eec7-4646-967e-c1f4879f69c9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f96b8a53-eec7-4646-967e-c1f4879f69c9', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:37.366431+00:00', 'updated_at': None} -GET: /v1/volume/targets?sort_key=uuid {} -GOT:{'targets': [{'uuid': '1068e3cc-06b4-4402-a223-2cb7b36772c8', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1068e3cc-06b4-4402-a223-2cb7b36772c8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1068e3cc-06b4-4402-a223-2cb7b36772c8', 'rel': 'bookmark'}]}, {'uuid': '27dc1945-2abb-4e08-a567-73c3914aeeeb', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/27dc1945-2abb-4e08-a567-73c3914aeeeb', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/27dc1945-2abb-4e08-a567-73c3914aeeeb', 'rel': 'bookmark'}]}, {'uuid': 'df6df3e2-50ef-4240-81a5-bfd9e4acde5e', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/df6df3e2-50ef-4240-81a5-bfd9e4acde5e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/df6df3e2-50ef-4240-81a5-bfd9e4acde5e', 'rel': 'bookmark'}]}]} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] -GOT:Response: 409 Conflict +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'/mode' is a mandatory attribute and can not be removed\", \"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-0afddcc0-7ceb-4254-adbd-b5ecac4fa020 +Openstack-Request-Id: req-dda19b13-9e73-468f-9aff-99bc8f5b3619 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': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}]ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_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.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_portgroup.TestDelete.test_delete_portgroup_byid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byid ... ok - -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/internal_info', 'value': False, 'op': 'replace'}] +{"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_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-4949dd8b-4975-4b55-9532-e8d7acd9f959 +Openstack-Request-Id: req-1cf02dff-20af-43a1-aff0-db0f9716b849 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}"} -PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'value': '802.3ad', 'op': 'add'}, {'path': '/properties/bond_param', 'value': '100', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"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-e1f8c9ae-47a1-4549-8372-7aa0c730618d +Openstack-Request-Id: req-657b5fd8-3ba7-4498-a8f6-fe3dee30b6a5 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": "2020-08-18T08:12:34.049572+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 -{"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'} -GOT:Response: 500 Internal Server Error +{"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-09-20T14:58:05.731033+00:00", "updated_at": null}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_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_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_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_portgroup.TestPatch.test_update_portgroup_mode_properties +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ... ok +ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_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_volume_connector.TestPatch.test_replace_node_uuid_invalid_type +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_uuid_invalid_type ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_invalid_power_state ... ok +ironic.tests.unit.api.controllers.v1.test_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_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.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_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_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_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_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_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.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_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields ... 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 -Openstack-Request-Id: req-6100364c-9d3b-4693-aa2e-30436b4c0ea6 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-d118103e-ea3b-4bba-9cd3-5e6bff6a1e8b 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, 'node_uuid': 'invalid-format'} +{"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-09-20T14:57:49.305932+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-09-20T14:57:49.305932+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} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-9eb80756-1b19-4d36-b3a4-bb1374fa9fbf +Openstack-Request-Id: req-25daa49e-f394-4995-95b7-5e9b60c74d0e 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}"} -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 +{"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': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-352ae0e7-2626-40f9-9113-db59e3151ece +Openstack-Request-Id: req-3a0a45e8-4be3-4603-af0e-e6fe8f0df619 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": "2020-08-18T08:12:35.378776+00:00", "updated_at": null} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-354ac2a2-a684-4ec7-b4eb-ed5268b26e4f +Openstack-Request-Id: req-7b4ea4d1-f932-4ebb-9512-559e0ef414ca 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": "2020-08-18T08:12:35.604422+00:00", "updated_at": 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-f1c7585c-eb8e-4b56-8e16-de9e70960784 -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}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] +{"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-09-20T14:57:54.698576+00:00", "updated_at": null} +GET: /v1/volume/connectors {} +GOT:{'connectors': [{'uuid': '18f546f5-d05c-4aea-93ad-4e968757c3cd', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/18f546f5-d05c-4aea-93ad-4e968757c3cd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/18f546f5-d05c-4aea-93ad-4e968757c3cd', 'rel': 'bookmark'}]}, {'uuid': '23845cfe-2551-4420-88e0-f644a8c87b62', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/23845cfe-2551-4420-88e0-f644a8c87b62', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/23845cfe-2551-4420-88e0-f644a8c87b62', 'rel': 'bookmark'}]}, {'uuid': '69571264-f727-4827-a153-03274b4bcec6', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/69571264-f727-4827-a153-03274b4bcec6', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/69571264-f727-4827-a153-03274b4bcec6', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=69571264-f727-4827-a153-03274b4bcec6'} +GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6c06c7cf-f0d2-4100-aa4c-438123f32d95 +Openstack-Request-Id: req-87fdde12-6032-4024-9545-555f4b3aa344 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}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"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?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': '/node_uuid', 'value': 123, 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1dda8dc8-60a3-4115-a299-cdbc64b52095 +Openstack-Request-Id: req-ac1d817d-4020-4f1b-835f-b35e78fae27e 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": "2020-08-18T08:12:38.498088+00:00", "updated_at": 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 UUID for node_uuid, but received 123.\", \"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 Content-Type: application/json -Openstack-Request-Id: req-46636dd1-d25c-4c7d-9d4c-77b000ba85cb +Openstack-Request-Id: req-faaa430a-caa2-44d6-b586-fa975bdd220f 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}"}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_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.TestPost.test_create_volume_target_no_mandatory_field_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_no_mandatory_field_node_uuid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_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_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_utils.TestApiUtils.test_is_path_removed_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_success ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID but received 123.\", \"debuginfo\": null}"} +POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_no_mandatory_field_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_custom_fields_invalid_fields ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ... ok -ironic.tests.unit.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_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.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail ... ok -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ... 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_portgroup.TestListPortgroups.test_empty -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ... 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_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.test_root.TestRoot.test_get_root -ironic.tests.unit.api.test_root.TestRoot.test_get_root ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_query ... ok -ironic.tests.unit.api.test_acl.TestACL.test_authenticated -ironic.tests.unit.api.test_acl.TestACL.test_authenticated ... 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_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_volume_target.TestListVolumeTargets.test_many -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_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.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.api.test_audit.TestAuditMiddleware.test_disable_audit_request -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ... ok -ironic.tests.unit.api.controllers.v1.test_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.test_audit.TestAuditMiddleware.test_enable_audit_request -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ... ok -ironic.tests.unit.api.controllers.v1.test_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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_invalid_power_state ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.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_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_utils.TestVendorPassthru.test_vendor_passthru_attach -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_attach ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_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_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_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_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_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_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_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.TestPatch.test_replace_non_existent_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ... ok -ironic.tests.unit.api.controllers.v1.test_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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_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_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_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_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_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_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_traits +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_traits ... 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_volume_connector.TestPatch.test_add_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_uuid ... ok -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-632c8293-5f72-4ff7-b151-1e8ec5727c60 +Openstack-Request-Id: req-f99c74c5-b7d9-4796-b9ed-26edbd781823 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": "2020-08-18T08:12:37.721809+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': '2020-08-18T08:12:37.721809+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': 'd0a3b93a-bf82-4c4e-8c37-8bb245eb35ee'}, '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 +{"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-09-20T14:57:57.712268+00:00", "updated_at": "2021-09-20T14:57:57.899135+00:00"} +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 -Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-15d6c7e1-4c35-4ee3-b2c5-fc9b3a60a3f4 +{"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': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-4ac3b059-c525-4657-9d2c-c18191b16748 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": "d0a3b93a-bf82-4c4e-8c37-8bb245eb35ee"}, "internal_info": {"tenant_vif_port_id": "d0a3b93a-bf82-4c4e-8c37-8bb245eb35ee"}, "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": "2020-08-18T08:12:38.109631+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': '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 +{"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-09-20T14:58:01.655930+00:00", "updated_at": null} +PATCH: /v1/portgroups/pg.1.json [{'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-4a2ebbd8-250d-426a-9dbc-cfc6722287d3 +Openstack-Request-Id: req-518a0b04-037d-4493-a09b-e1e9f77a5b23 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": "2020-08-18T08:12:38.328051+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 +{"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-09-20T14:58:03.733047+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: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-746d0794-19c9-44f8-848f-d67580a563a8 +Openstack-Request-Id: req-c4cba338-9c11-4110-b131-01219862f550 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/52:54:00:cf:2d:31 -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}"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/standalone_ports_supported', 'value': False, 'op': 'replace'}] +GOT:Response: 200 OK 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. "} -DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -GOT:Response: 204 No Content -Openstack-Request-Id: req-c6c3ea8e-8638-4a32-ad46-4632639df7ae +Openstack-Request-Id: req-b96b2673-53d8-4fc7-9b42-7c123653dc6f 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/detail {} -GOT:Response: 404 Not Found +{"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-09-20T14:58:08.191020+00:00", "updated_at": null} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/vif_port_id', 'op': 'remove'}] +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?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': '2020-08-18T08:12:39.421919+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': '2020-08-18T08:12:39.735833+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'}]}]}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_many -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.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_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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done ... ok -ironic.tests.unit.api.controllers.v1.test_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.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.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_set_meta_failure ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_mode_field_lower_api_version ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ... 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_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.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_doesnt_contain_id ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_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_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_portgroup.TestPatch.test_add_node_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_id ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_client_init_failure_invalid_parameter_value ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.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_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_volume_connector.TestListVolumeConnectors.test_collection_links_detail -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links_detail ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_meta_failure_errors_not_allowed ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_detach_failure_errors_not_allowed ... ok -ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session -ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session ... 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_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_middleware.TestCORSMiddleware.test_valid_cors_options_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_options_request ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_node_id ... 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_thread_without_context -ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context ... ok -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values -ironic.tests.unit.common.test_context.RequestContextTestCase.test_to_policy_values ... 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.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ... ok - +Openstack-Request-Id: req-f362cb72-26b8-409b-8e1b-8781dc70187c +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": "2021-09-20T14:58:10.887758+00:00", "updated_at": "2021-09-20T14:58:12.087144+00:00"} +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/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-490c7713-05fb-4fb7-8107-0eec6b566118 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-ce434faa-35d6-47a6-bd2c-f3022b870d64 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": "2020-08-18T08:12:37.842519+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-65359bd1-f568-491a-98a2-641da48a9b41 +{"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-09-20T14:58:14.172564+00:00", "updated_at": null} +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-c328505d-cb6b-4adb-92ff-e5b9251cc545 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/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/?limit=3 {} -GOT:{'portgroups': [{'uuid': '68f20e63-0b7b-4c54-ab5d-a9abc80ba574', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/68f20e63-0b7b-4c54-ab5d-a9abc80ba574', 'rel': 'self'}, {'href': 'http://localhost/portgroups/68f20e63-0b7b-4c54-ab5d-a9abc80ba574', 'rel': 'bookmark'}]}, {'uuid': '65f97b75-0140-47ce-a509-3805c9adf01d', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/65f97b75-0140-47ce-a509-3805c9adf01d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/65f97b75-0140-47ce-a509-3805c9adf01d', 'rel': 'bookmark'}]}, {'uuid': '59fa67b5-20ca-4bf3-a804-4a1127d281fb', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/59fa67b5-20ca-4bf3-a804-4a1127d281fb', 'rel': 'self'}, {'href': 'http://localhost/portgroups/59fa67b5-20ca-4bf3-a804-4a1127d281fb', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&limit=3&marker=59fa67b5-20ca-4bf3-a804-4a1127d281fb'} -GET: /v1/portgroups/detail?sort_key=mode {} -GOT:Response: 406 Not Acceptable +X-Openstack-Ironic-Api-Version: 1.46 +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.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_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_portgroup_fields_mode_properties +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_allowed_portgroup_fields_mode_properties ... ok + +GET: /v1/volume/connectors/7020b41d-86bc-4c85-afd0-f29a4fc31806 {} +GOT:{'uuid': '7020b41d-86bc-4c85-afd0-f29a4fc31806', '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/7020b41d-86bc-4c85-afd0-f29a4fc31806', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7020b41d-86bc-4c85-afd0-f29a4fc31806', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:56.894043+00:00', 'updated_at': None} +GET: /volume/connectors/7020b41d-86bc-4c85-afd0-f29a4fc31806 {} +GOT:{'uuid': '7020b41d-86bc-4c85-afd0-f29a4fc31806', '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/7020b41d-86bc-4c85-afd0-f29a4fc31806', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7020b41d-86bc-4c85-afd0-f29a4fc31806', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:57:56.894043+00:00', 'updated_at': None} +GET: /v1/volume/connectors {} +GOT:{'connectors': [{'uuid': 'c62e8221-e23a-445c-ab54-9653fde0316a', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/c62e8221-e23a-445c-ab54-9653fde0316a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c62e8221-e23a-445c-ab54-9653fde0316a', 'rel': 'bookmark'}]}, {'uuid': '2b17334a-8042-4f19-804b-69ecfc9d805a', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/2b17334a-8042-4f19-804b-69ecfc9d805a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2b17334a-8042-4f19-804b-69ecfc9d805a', 'rel': 'bookmark'}]}, {'uuid': '8606d068-8c96-492b-9c31-89a4e86b11b8', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/8606d068-8c96-492b-9c31-89a4e86b11b8', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/8606d068-8c96-492b-9c31-89a4e86b11b8', 'rel': 'bookmark'}]}, {'uuid': '329f2439-fc64-49d3-9098-be139602c52f', 'type': 'iqn', 'connector_id': 'test-connector_id-3', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/329f2439-fc64-49d3-9098-be139602c52f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/329f2439-fc64-49d3-9098-be139602c52f', 'rel': 'bookmark'}]}, {'uuid': 'f8384b53-a63b-4de5-af53-809800d4bdf4', 'type': 'iqn', 'connector_id': 'test-connector_id-4', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/f8384b53-a63b-4de5-af53-809800d4bdf4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/f8384b53-a63b-4de5-af53-809800d4bdf4', 'rel': 'bookmark'}]}]} +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-346ab2c5-dd2c-442b-af48-d5d854797c2b +Openstack-Request-Id: req-59a6cc48-883c-4bd2-8a9d-5e4fbdd0810e 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?detail=True&fields=name {} +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-09-20T14:58:03.356430+00:00", "updated_at": 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-4b0f228c-f05f-46c6-a7b0-2c9fd8bf367c +Openstack-Request-Id: req-786add94-efd7-4c77-aaf9-7f15648ef9ac 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 {} -GOT:{'portgroups': []} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,extra {} -GOT:{'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]} -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4.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': '2020-08-18T08:12:39.820116+00:00', 'updated_at': None} -GET: /v1/portgroups {} -GOT:{'portgroups': [{'uuid': '0654e0af-2bdd-48f0-93c9-dd7355cea794', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/0654e0af-2bdd-48f0-93c9-dd7355cea794', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0654e0af-2bdd-48f0-93c9-dd7355cea794', 'rel': 'bookmark'}]}, {'uuid': 'd05278fc-fdcb-4436-aa51-5cf932cc7088', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/d05278fc-fdcb-4436-aa51-5cf932cc7088', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d05278fc-fdcb-4436-aa51-5cf932cc7088', 'rel': 'bookmark'}]}, {'uuid': '7deb1bbb-bf01-453a-b9f3-c874cf96aeb8', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/7deb1bbb-bf01-453a-b9f3-c874cf96aeb8', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7deb1bbb-bf01-453a-b9f3-c874cf96aeb8', 'rel': 'bookmark'}]}, {'uuid': 'c3deada4-8bc5-45d1-8e0a-df4abd671c61', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/c3deada4-8bc5-45d1-8e0a-df4abd671c61', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c3deada4-8bc5-45d1-8e0a-df4abd671c61', 'rel': 'bookmark'}]}, {'uuid': '449460ec-9303-408c-86cd-1e3601c24bf5', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/449460ec-9303-408c-86cd-1e3601c24bf5', 'rel': 'self'}, {'href': 'http://localhost/portgroups/449460ec-9303-408c-86cd-1e3601c24bf5', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups {} -GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'address': '52:54:00:cf:2d:31', 'name': 'fooname', 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?address=aa:bb:cc:dd:ee:ff {} -GOT:{'portgroups': []} -GET: /v1/portgroups?sort_key=uuid {} -GOT:{'portgroups': [{'uuid': '60e2ea2a-f9fe-421e-bb38-05e104c5828b', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/60e2ea2a-f9fe-421e-bb38-05e104c5828b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/60e2ea2a-f9fe-421e-bb38-05e104c5828b', 'rel': 'bookmark'}]}, {'uuid': '7200b529-58f4-48c6-8034-2439f46ec52f', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/7200b529-58f4-48c6-8034-2439f46ec52f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/7200b529-58f4-48c6-8034-2439f46ec52f', 'rel': 'bookmark'}]}, {'uuid': 'f2d7f356-0f5c-446e-ba98-83ec84d8c47d', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/f2d7f356-0f5c-446e-ba98-83ec84d8c47d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f2d7f356-0f5c-446e-ba98-83ec84d8c47d', 'rel': 'bookmark'}]}]} -GET: /v1/portgroups?sort_key=mode {} -GOT:Response: 406 Not Acceptable +{"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': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c6894375-cb2d-41ad-aab7-dbb0feaad86f +Openstack-Request-Id: req-180bc1f7-d8f8-42c1-810f-edddcf1b3655 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}"}ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed -ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed ... ok -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_one_detached ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_multi ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_collection_custom_fields ... ok -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ... ok - -POST: /v1/heartbeat/test.1 {'callback_url': 'url'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-80f71f6c-c7df-4bca-a60d-1ada653dcbaf +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}"} +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-a64b4219-b7b5-468a-b4fa-7440c1c3239d 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?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=4877e0ff-822f-4909-9ccc-a63e6f851b53 {} -GOT:{'node': {'uuid': '4877e0ff-822f-4909-9ccc-a63e6f851b53', '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/4877e0ff-822f-4909-9ccc-a63e6f851b53', 'rel': 'self'}, {'href': 'http://localhost/nodes/4877e0ff-822f-4909-9ccc-a63e6f851b53', '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=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/detail {} +{"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-09-20T14:58:09.312274+00:00", "updated_at": null} +GET: /v1/volume/targets/detail {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-c62f7dfb-96e0-4469-bdb7-07caa92b36df +Openstack-Request-Id: req-f87560d1-0ced-45da-ba09-4da00115e3ff 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/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?fields=uuid,spongebob {} -GOT:Response: 400 Bad Request +{"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}"} +GET: /v1/volume/targets?node=test-node {} +GOT:{'targets': [{'uuid': '0b3fec12-fd0a-4bed-bd01-813f57676c26', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/0b3fec12-fd0a-4bed-bd01-813f57676c26', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/0b3fec12-fd0a-4bed-bd01-813f57676c26', 'rel': 'bookmark'}]}, {'uuid': 'eca26982-3429-41d1-bf46-4a3a425cdcf4', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/eca26982-3429-41d1-bf46-4a3a425cdcf4', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/eca26982-3429-41d1-bf46-4a3a425cdcf4', 'rel': 'bookmark'}]}, {'uuid': 'cf94a093-d02f-4467-afb9-e2c0d6a6cafc', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/cf94a093-d02f-4467-afb9-e2c0d6a6cafc', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/cf94a093-d02f-4467-afb9-e2c0d6a6cafc', 'rel': 'bookmark'}]}]} +GET: /v1/volume/targets/95f9788e-4c87-40bd-bd8d-d80c24924587 {} +GOT:{'uuid': '95f9788e-4c87-40bd-bd8d-d80c24924587', '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/95f9788e-4c87-40bd-bd8d-d80c24924587', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/95f9788e-4c87-40bd-bd8d-d80c24924587', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:15.858367+00:00', 'updated_at': None}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_detail +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail ... 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_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_old_api_version +ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ... ok +ironic.tests.unit.api.controllers.v1.test_volume_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.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_utils.TestApiUtils.test_is_path_updated_success +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_updated_success ... ok + +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-8d1c5ea3-312b-4bd8-a8f9-5eac037fde7a +Openstack-Request-Id: req-18640403-c989-42ef-9480-1d0308a5d889 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/connectors {} -GOT:{'connectors': [{'uuid': 'dd6a693c-38a6-4921-bd43-acfe30260967', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/dd6a693c-38a6-4921-bd43-acfe30260967', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dd6a693c-38a6-4921-bd43-acfe30260967', 'rel': 'bookmark'}]}, {'uuid': '4f297a60-4e25-4489-ad1c-cf2c3cee18f4', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/4f297a60-4e25-4489-ad1c-cf2c3cee18f4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4f297a60-4e25-4489-ad1c-cf2c3cee18f4', 'rel': 'bookmark'}]}, {'uuid': '66c70d0a-3dd5-407b-a6c7-4de63c2c3d4f', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/66c70d0a-3dd5-407b-a6c7-4de63c2c3d4f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/66c70d0a-3dd5-407b-a6c7-4de63c2c3d4f', 'rel': 'bookmark'}]}, {'uuid': '6c086438-7365-4039-bebe-13ff5ffb300c', 'type': 'iqn', 'connector_id': 'test-connector_id-3', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6c086438-7365-4039-bebe-13ff5ffb300c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6c086438-7365-4039-bebe-13ff5ffb300c', 'rel': 'bookmark'}]}, {'uuid': '534ec16c-400f-4aaa-ae66-32ade8e4dd0d', 'type': 'iqn', 'connector_id': 'test-connector_id-4', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/534ec16c-400f-4aaa-ae66-32ade8e4dd0d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/534ec16c-400f-4aaa-ae66-32ade8e4dd0d', 'rel': 'bookmark'}]}]} -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 "} -GET: /v1/volume/connectors?sort_key=foo {} +{"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-09-20T14:57:48.234924+00:00", "updated_at": "2021-09-20T14:57:48.424026+00:00"} +PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-0155f9e4-e098-40e1-b744-2ee6bebdea49 +Openstack-Request-Id: req-dcd18a72-8fb6-421b-b8cb-23606c0adcee 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\": \"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': '/node_id', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-df9d6d27-7006-40bf-8c2f-c8c13dbf7a7b +Openstack-Request-Id: req-3d8be48b-f9d0-4c06-8b66-cd4015f1838a 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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] +{"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', '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-e0489f39-885f-4026-8cad-627db240a2b1 +Openstack-Request-Id: req-ef0decc0-d4a0-47d9-b833-4305eae1f19d +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-09-20T14:57:55.383517+00:00", "updated_at": "2021-09-20T14:57:56.913543+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 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-c7f4f1f9-1bc8-4273-93d0-bf6f155e0588 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": "2020-08-18T08:12:40.177066+00:00", "updated_at": null} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +{"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-09-20T14:57:58.989798+00:00", "updated_at": null} +GET: /v1/lookup {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1aad1377-4eea-4f35-a4f0-86a2e5fea80e +Openstack-Request-Id: req-a62c1336-ffb4-4a3c-a7f8-90d1a9db8c05 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': '/connector_id', 'value': 'test-connector-id-123', 'op': 'replace'}] +{"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: 404 Not Found +Content-Type: application/json +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 409 Conflict Content-Type: application/json -Openstack-Request-Id: req-9aae88d7-c08c-4c33-aa77-d4df538da42f +Openstack-Request-Id: req-7e3a4fc7-ee1e-47cc-b985-1e7c2d9b4b6f 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}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"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/?limit=3 {} +GOT:{'connectors': [{'uuid': 'dc1c4c97-b442-40f6-8b56-620345d58942', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/dc1c4c97-b442-40f6-8b56-620345d58942', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dc1c4c97-b442-40f6-8b56-620345d58942', 'rel': 'bookmark'}]}, {'uuid': '1da1e170-69fe-45cb-a75a-5dd40d37aaf9', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/1da1e170-69fe-45cb-a75a-5dd40d37aaf9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1da1e170-69fe-45cb-a75a-5dd40d37aaf9', 'rel': 'bookmark'}]}, {'uuid': '885c8197-890e-488b-9def-d0aab74233f2', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/885c8197-890e-488b-9def-d0aab74233f2', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/885c8197-890e-488b-9def-d0aab74233f2', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=885c8197-890e-488b-9def-d0aab74233f2'} +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-09-20T14:58:15.345731+00:00', 'updated_at': None} +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-ce251fdb-90fb-4676-a1e5-4fa919ecebf3 +Openstack-Request-Id: req-aa0215d8-ccd5-40b5-9d3a-45a79c9d2a5c 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": "2020-08-18T08:12:40.907676+00:00", "updated_at": "2020-08-18T08:12:40.919590+00:00"}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Couldn't apply patch '[{'path': '/value', 'op': 'remove'}]'. Reason: can't remove non-existent object 'value'\", \"debuginfo\": null}"}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_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_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_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_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_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_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_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_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.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_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_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_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_connector.TestPatch.test_replace_node_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_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_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_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.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.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_wrap_in_driver_load_error_if_driver_enabled ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byid ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.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.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.TestVolumeTargetObject.test_volume_target_init +ironic.tests.unit.api.controllers.v1.test_volume_target.TestVolumeTargetObject.test_volume_target_init ... 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_allow_ramdisk_endpoints +ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_ramdisk_endpoints ... ok -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?detail=True&limit=3 {} -GOT:{'targets': [{'uuid': '918f2442-3946-4c65-9b41-fed64ff4e74c', '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/918f2442-3946-4c65-9b41-fed64ff4e74c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/918f2442-3946-4c65-9b41-fed64ff4e74c', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:39.181860+00:00', 'updated_at': None}, {'uuid': '2758b58f-e06f-4bc5-92b2-62ac8e0d191c', '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/2758b58f-e06f-4bc5-92b2-62ac8e0d191c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/2758b58f-e06f-4bc5-92b2-62ac8e0d191c', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:39.196279+00:00', 'updated_at': None}, {'uuid': '88fe881a-486c-4b1e-83a6-9ae78fd17d19', '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/88fe881a-486c-4b1e-83a6-9ae78fd17d19', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/88fe881a-486c-4b1e-83a6-9ae78fd17d19', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:39.201681+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=88fe881a-486c-4b1e-83a6-9ae78fd17d19'} -GET: /v1/volume/targets {} -GOT:{'targets': [{'uuid': 'ccc45cae-4555-4c17-b480-b347eaa24d8f', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ccc45cae-4555-4c17-b480-b347eaa24d8f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ccc45cae-4555-4c17-b480-b347eaa24d8f', 'rel': 'bookmark'}]}, {'uuid': 'ec292222-7c18-4ee8-a750-e4b5266c0c39', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/ec292222-7c18-4ee8-a750-e4b5266c0c39', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ec292222-7c18-4ee8-a750-e4b5266c0c39', 'rel': 'bookmark'}]}, {'uuid': 'e991e586-851b-40ad-859f-575acd101a81', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/e991e586-851b-40ad-859f-575acd101a81', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e991e586-851b-40ad-859f-575acd101a81', 'rel': 'bookmark'}]}, {'uuid': '2e99a8f3-30ae-4963-b1d9-5b3e96584bed', 'volume_type': 'iscsi', 'boot_index': 3, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/2e99a8f3-30ae-4963-b1d9-5b3e96584bed', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/2e99a8f3-30ae-4963-b1d9-5b3e96584bed', 'rel': 'bookmark'}]}, {'uuid': 'b1331e24-a945-483e-af40-959fa869edbd', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/b1331e24-a945-483e-af40-959fa869edbd', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b1331e24-a945-483e-af40-959fa869edbd', 'rel': 'bookmark'}]}]} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 400 Bad Request +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-33c6af99-9946-4036-95de-960d85e6714b +Openstack-Request-Id: req-4a0c58c5-a37a-4f93-8c91-88d020ab24c1 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': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] -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": "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-09-20T14:58:08.160570+00:00", "updated_at": null} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-d2451b6a-06e8-467f-abac-54a6d9b05362 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-c76b9ac0-0e5e-41e9-9b0f-725fc0ef681c 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': '/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', '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 +{"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-09-20T14:58:11.492199+00:00", "updated_at": null} +POST: /v1/portgroups {'uuid': '2b90e0c5-3496-41ee-bd09-3e4fd33bc441', 'name': 'b00e524e-9d35-46fc-a147-907f159f8784', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 409 Conflict Content-Type: application/json -Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-bfa1c412-056b-48c5-b617-806ebdb97a26 +Openstack-Request-Id: req-00b74d3d-76a6-43d9-96ff-a5f40dd95100 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": "2020-08-18T08:12:40.515252+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': '2020-08-18T08:12:40.515252+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'} -GOT:Response: 500 Internal Server Error +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A portgroup with MAC address aa:aa:aa:11:22:33 already exists.\", \"debuginfo\": null}"} +POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'AA:BB:CC:DD:EE:FF', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-f4966f9b-b260-45cd-85ee-5fbae8ddefb3 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-b311d11e-0493-4aa5-8501-5d446ca2832a 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/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": "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-09-20T14:58:14.097992+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-09-20T14:58:14.097992+00:00', 'updated_at': None} +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/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-d629d178-4be4-48c8-90d0-f79782dd1c63 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-fa6406ca-5be7-4c0e-900a-8fcc74a30d99 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": "2020-08-18T08:12:41.061524+00:00", "updated_at": null}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_healthcheck.TestHealthcheckMiddleware.test_enable -ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... ok -ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check -ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ... ok -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ... ok -ironic.tests.unit.api.test_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__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_term_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id ... 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.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.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_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.DriverLoadTestCase.test_driver_duplicated_entry -ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ... ok - +{"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-09-20T14:58:16.938970+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} +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-09-20T14:58:16.938970+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'} GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-2a773d8d-d18d-4b9c-a19b-c36693f5b190 +Openstack-Request-Id: req-1a795d76-eb00-4ab2-8184-44c462b52c2b 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/563aa209-db8b-4c45-82f8-478b9781870b {'callback_url': 'url'} -GOT:Response: 404 Not Found -Content-Type: application/json -Openstack-Request-Id: req-11df95a8-aa7a-4994-815b-f6c1d5a20912 -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 563aa209-db8b-4c45-82f8-478b9781870b 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': 'e7cc6d89-ef0f-4fa1-a086-dff599e3bf3f', '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/e7cc6d89-ef0f-4fa1-a086-dff599e3bf3f', 'rel': 'self'}, {'href': 'http://localhost/nodes/e7cc6d89-ef0f-4fa1-a086-dff599e3bf3f', '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-bea5289b-066f-4089-9041-bb8d74e666a2 -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/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'}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_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_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.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_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_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_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_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.test_acl.TestACL.test_authenticated +ironic.tests.unit.api.test_acl.TestACL.test_authenticated ... 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 -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -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-fd9ed024-3164-439b-b959-2d858df24265 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-b2cc8272-5223-4cd2-a1a5-cd131c554b12 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}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] -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": "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': '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-1362da39-4bae-4ed1-9983-e0281031d7e2 +Openstack-Request-Id: req-d23eb35e-9ee2-422b-b431-92022e6ee3e6 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/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"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-b4858d95-d00b-41e2-8714-24f590078044 +Openstack-Request-Id: req-b9b8a615-934b-41dc-a51d-6d8afbd84c47 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}"} -DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.35 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field \\\"agent_version\\\" not recognised\", \"debuginfo\": null}"} +GET: /v1/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=d2d07306-7b28-4d08-859b-cda7af8ac133 {} +GOT:{'node': {'uuid': 'd2d07306-7b28-4d08-859b-cda7af8ac133', '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/d2d07306-7b28-4d08-859b-cda7af8ac133', 'rel': 'self'}, {'href': 'http://localhost/nodes/d2d07306-7b28-4d08-859b-cda7af8ac133', '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=a1347a62-fcaf-4f78-ad2e-2570b297bbe2 {} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-bd74f2e8-8e5f-4ed2-8174-d870582b7b2f +Openstack-Request-Id: req-b5540e4c-5a3f-44fa-b745-dba517619cf7 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?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': '2020-08-18T08:12:39.942874+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'}]}]} -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 {} -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/7618e006-a9ac-42d6-b6f0-62578644d25b [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": 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': '2021-09-20T14:58:10.061781+00:00', 'updated_at': None}]} +GET: /v1/volume/connectors?fields=uuid,extra {} +GOT:{'connectors': [{'uuid': '976d4998-b61d-4c98-a001-f1b13648e3eb', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/976d4998-b61d-4c98-a001-f1b13648e3eb', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/976d4998-b61d-4c98-a001-f1b13648e3eb', 'rel': 'bookmark'}]}, {'uuid': '817c1e1e-b3ff-443d-b6a6-8f4f370ca94d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/817c1e1e-b3ff-443d-b6a6-8f4f370ca94d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/817c1e1e-b3ff-443d-b6a6-8f4f370ca94d', 'rel': 'bookmark'}]}, {'uuid': '7b8b4c13-d21c-4760-8cd1-fafc8064014f', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/7b8b4c13-d21c-4760-8cd1-fafc8064014f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7b8b4c13-d21c-4760-8cd1-fafc8064014f', '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': '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?sort_key=uuid {} +GOT:{'connectors': [{'uuid': '19b0b968-555a-45eb-bf75-efd972abf395', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/19b0b968-555a-45eb-bf75-efd972abf395', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/19b0b968-555a-45eb-bf75-efd972abf395', 'rel': 'bookmark'}]}, {'uuid': '3ac9b547-0f8b-4c6d-9487-b8ba7083f4b1', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/3ac9b547-0f8b-4c6d-9487-b8ba7083f4b1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3ac9b547-0f8b-4c6d-9487-b8ba7083f4b1', 'rel': 'bookmark'}]}, {'uuid': 'd3a96512-eb2d-49ed-b3d2-c729b496a134', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/d3a96512-eb2d-49ed-b3d2-c729b496a134', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/d3a96512-eb2d-49ed-b3d2-c729b496a134', 'rel': 'bookmark'}]}]} +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-8aa46400-1eb0-41a4-8861-ed91203f88a9 +Openstack-Request-Id: req-52a7d96e-6460-4237-90e1-208ec6e01d75 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 7618e006-a9ac-42d6-b6f0-62578644d25b could not be found.\", \"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_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 -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions ... ok +{"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-09-20T14:58:21.035725+00:00", "updated_at": null}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_remove_uuid +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid ... 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_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_volume_connector.TestPatch.test_remove_non_existent_property_fail +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_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_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.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug ... ok +ironic.tests.unit.api.controllers.v1.test_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_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_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_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.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_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.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ... ok +ironic.tests.unit.api.controllers.v1.test_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_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.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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_notdone ... ok -ironic.tests.unit.api.controllers.v1.test_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.TestListVolumeConnectors.test_links -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links ... 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_cinder.TestCinderActions.test_detach_volumes -ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... 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.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_build_driver_for_task_not_fake ... ok -ironic.tests.unit.api.controllers.v1.test_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_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.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.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.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_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.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_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_exception.TestIronicException.test___init___json_serializable -ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable ... 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_volume_target.TestListVolumeTargets.test_empty -ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ... 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_fsm.FSMTest.test_is_stable_invalid_state -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_invalid_state ... ok -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_byname_with_json ... ok -ironic.tests.unit.common.test_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_fsm.FSMTest.test_is_stable_not -ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not ... ok - -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-e5f7b2c9-e989-4ebf-95f6-cbf3f2f3b96c -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 +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.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_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_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.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_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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations ... ok +ironic.tests.unit.api.controllers.v1.test_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_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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_batches ... ok +GOT:{'node': {'uuid': '037999bb-5078-4cef-954b-c3546cc8c496', '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/037999bb-5078-4cef-954b-c3546cc8c496', 'rel': 'self'}, {'href': 'http://localhost/nodes/037999bb-5078-4cef-954b-c3546cc8c496', '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-a574b858-4c21-4c2b-b153-061aa2d813ad +Openstack-Request-Id: req-a0c6b235-ec5b-4d53-86f7-e3833da8864d 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/ {} -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'}]} -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': []} 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?detail=True&limit=3 {} -GOT:{'connectors': [{'uuid': '44f2af56-79e9-4dbe-89ac-c5535b0cca8a', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/44f2af56-79e9-4dbe-89ac-c5535b0cca8a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/44f2af56-79e9-4dbe-89ac-c5535b0cca8a', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:40.818885+00:00', 'updated_at': None}, {'uuid': '3b9f720e-b038-4d2e-86c8-22aff21430a0', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/3b9f720e-b038-4d2e-86c8-22aff21430a0', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3b9f720e-b038-4d2e-86c8-22aff21430a0', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:40.825597+00:00', 'updated_at': None}, {'uuid': '17a39024-7c1a-47f0-a0c4-8bf21b50c316', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/17a39024-7c1a-47f0-a0c4-8bf21b50c316', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/17a39024-7c1a-47f0-a0c4-8bf21b50c316', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:40.831480+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=17a39024-7c1a-47f0-a0c4-8bf21b50c316'} -GET: /v1/volume/connectors {} -GOT:{'connectors': []} -GET: /v1/volume/connectors?fields=uuid,extra {} -GOT:{'connectors': [{'uuid': '911c94fb-dcb0-4f7a-afbd-245e0735580d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/911c94fb-dcb0-4f7a-afbd-245e0735580d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/911c94fb-dcb0-4f7a-afbd-245e0735580d', 'rel': 'bookmark'}]}, {'uuid': 'ee902c9d-20ff-47f8-b157-7a0e6b5be65a', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/ee902c9d-20ff-47f8-b157-7a0e6b5be65a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ee902c9d-20ff-47f8-b157-7a0e6b5be65a', 'rel': 'bookmark'}]}, {'uuid': '832cee2f-dde3-4750-9947-83ac73ba59c5', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/832cee2f-dde3-4750-9947-83ac73ba59c5', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/832cee2f-dde3-4750-9947-83ac73ba59c5', 'rel': 'bookmark'}]}]} -GET: /v1/volume/connectors/dcdb65c3-c0fc-4347-b30d-91edf9122621 {} -GOT:{'uuid': 'dcdb65c3-c0fc-4347-b30d-91edf9122621', '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/dcdb65c3-c0fc-4347-b30d-91edf9122621', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dcdb65c3-c0fc-4347-b30d-91edf9122621', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:41.853865+00:00', 'updated_at': None} -GET: /v1/volume/connectors/dcdb65c3-c0fc-4347-b30d-91edf9122621 {} -GOT:{'uuid': 'dcdb65c3-c0fc-4347-b30d-91edf9122621', '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/dcdb65c3-c0fc-4347-b30d-91edf9122621', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dcdb65c3-c0fc-4347-b30d-91edf9122621', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:41.853865+00:00', 'updated_at': None} -GET: /volume/connectors/dcdb65c3-c0fc-4347-b30d-91edf9122621 {} -GOT:{'uuid': 'dcdb65c3-c0fc-4347-b30d-91edf9122621', '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/dcdb65c3-c0fc-4347-b30d-91edf9122621', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/dcdb65c3-c0fc-4347-b30d-91edf9122621', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:41.853865+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-c0959de2-f861-416b-9ce9-b9452e4b76be +GOT:Response: 204 No Content +Openstack-Request-Id: req-8705a0a4-492c-49ac-b220-8cb0eacbdefd 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": "2020-08-18T08:12:42.468058+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_multi ... ok -ironic.tests.unit.common.test_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_cinder.TestCinderUtils.test__get_attachment_id -ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_mandatory_field ... ok -ironic.tests.unit.common.test_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_fsm.FSMTest.test_process_event -ironic.tests.unit.common.test_fsm.FSMTest.test_process_event ... ok -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ... ok -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ... 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.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_glance_service.TestServiceUtils.test_parse_image_id_fail -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_fail ... ok -ironic.tests.unit.common.test_glance_service.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_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.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.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_enabled_supported_interfaces ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ... ok -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_do_not_return_expired_tempurls ... ok -ironic.tests.unit.common.test_glance_service.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_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_no_network_interface ... ok -ironic.tests.unit.api.controllers.v1.test_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_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.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_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_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl -ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_return_cached_tempurl ... ok -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer ... 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_exception.TestIronicException.test___init___string_serializable -ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable ... 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.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer_drivername_node ... ok -ironic.tests.unit.api.controllers.v1.test_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 -GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=uuid,spongebob {} +DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-a1c77ca6-1bf9-4cc1-920d-06c8d2a8d71f +Openstack-Request-Id: req-c840ea62-75ad-49a2-b5cc-b2084f68e4e9 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/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-98f80880-ba16-4a04-ba52-3743378e754c -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_id', 'value': '1', 'op': 'add'}] +{"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/detail {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-ec8864cf-e87c-4603-9e11-d541ab7ec0c0 +Openstack-Request-Id: req-258ae7b4-200d-4c67-95d8-899750800bd1 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': '/mode', 'op': 'remove'}] +{"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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-46909db0-a2fb-426a-bbc9-fec79511bf87 +Openstack-Request-Id: req-082eb38e-2392-4afa-b182-2315240491a2 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': '/node_id', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} +GET: /v1/volume/connectors?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6216cef3-8b95-482a-ae55-a3f28fd0b54c +Openstack-Request-Id: req-56dafa89-865c-4344-9c00-443b03e145dc 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': '/uuid', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} +GET: /v1/volume/connectors?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6c8d28f8-5049-4094-a499-cddf3cd4bd8c +Openstack-Request-Id: req-c1f6581b-eba6-4694-8b81-c29d4d169f18 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': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"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': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-09e79ec0-3af1-4a5c-b99a-824abbcd2a08 +Openstack-Request-Id: req-8e4d1097-40d4-4a51-8601-66d953acc317 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": "2020-08-18T08:12:41.747836+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': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-2611a72d-220b-4ce1-a9b3-74bee31ddd29 -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": "2020-08-18T08:12:42.281091+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-3a0d84ef-4c00-4fbb-a699-4e7ea68ad7a0 -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 +{"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-09-20T14:58:16.503537+00:00", "updated_at": null} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-915029b8-55bb-4c7b-a551-3ded81404393 +Openstack-Request-Id: req-a3cf26d9-19b7-4e9f-b8cf-5875938b64e5 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'}] +X-Openstack-Ironic-Api-Version: 1.46 +{"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 -Openstack-Request-Id: req-4fc57d14-85ea-4bdd-9d24-7ca6e01f9316 +Openstack-Request-Id: req-e29f38b0-d4a8-453d-8ce1-583cc1d4968a 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": "2020-08-18T08:12:42.806702+00:00", "updated_at": "2020-08-18T08:12:42.966237+00:00"} -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'} +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": "2021-09-20T14:58:20.998561+00:00", "updated_at": "2021-09-20T14:58:21.189829+00:00"} +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'} GOT:Response: 201 Created Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-d4faa22d-8e9c-4f03-aa7c-7f88884c4db6 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-a88a91c2-1d24-4e73-8539-e54490138073 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": "2020-08-18T08:12:43.246725+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_normalized ... ok -ironic.tests.unit.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_fsm.FSMTest.test_initialize -ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ... ok +{"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': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_invalid_option1 ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_error ... ok +ironic.tests.unit.api.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_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.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_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_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_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.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_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_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_target.TestPatch.test_remove_node_id ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_node_id ... 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.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_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_one ... ok -ironic.tests.unit.api.controllers.v1.test_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.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_old_api_version ... ok -ironic.tests.unit.common.test_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_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_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_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_image_service.HttpImageServiceTestCase.test_download_fail_connerror -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_connerror ... 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.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.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.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure ... ok +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ... ok +ironic.tests.unit.api.controllers.v1.test_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.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_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.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_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_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_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_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_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ... ok -ironic.tests.unit.api.controllers.v1.test_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_portgroup.TestPost.test_create_portgroup_generate_uuid -ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_generate_uuid ... ok -ironic.tests.unit.common.test_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_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.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.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_invalid_node_uuid_format ... ok -ironic.tests.unit.common.test_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_uefi_for_hrefs -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_uefi_for_hrefs ... ok -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error -ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error ... ok -ironic.tests.unit.api.controllers.v1.test_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.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.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_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.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.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_invalid_network_interface ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links ... ok +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ... ok +ironic.tests.unit.api.controllers.v1.test_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.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ... ok +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two ... ok ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ... 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.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_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_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_mkisofs_fails ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_add_request_id ... ok -ironic.tests.unit.api.controllers.v1.test_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.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_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_parse_image_id_from_glance_fail ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr -ironic.tests.unit.api.controllers.v1.test_types.TestMacAddressType.test_invalid_mac_addr ... 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_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.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.test_hooks.TestContextHook.test_context_hook_after_miss_context ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context ... ok -ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name -ironic.tests.unit.api.controllers.v1.test_types.TestNameType.test_valid_name ... 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_images.FsImageTestCase.test_get_glance_image_properties_default_all -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all ... ok -ironic.tests.unit.api.controllers.v1.test_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.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_forbidden_converts_to_imagenotauthed ... ok -ironic.tests.unit.api.controllers.v1.test_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_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.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port ... 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_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active -ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_image_not_active ... ok -ironic.tests.unit.api.controllers.v1.test_volume_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_utils.TestApiUtils.test_allow_resource_class -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_allow_resource_class ... 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.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.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... 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_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_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info ... ok -ironic.tests.unit.api.controllers.v1.test_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.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports -ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports ... ok -ironic.tests.unit.api.test_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.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_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_multiple_containers ... ok -ironic.tests.unit.api.controllers.v1.test_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_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.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_image_service.FileImageServiceTestCase.test_download_copy -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ... ok -ironic.tests.unit.api.controllers.v1.test_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.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length ... ok -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ... 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_image_service.FileImageServiceTestCase.test_show -ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... 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.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_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_image_service.HttpImageServiceTestCase.test_validate_href -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg -ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_empty ... ok 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': '2020-08-18T08:12:43.246725+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'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-9fb93009-5cd1-4759-81d0-769b5cdd71ce -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": "2020-08-18T08:12:43.547522+00:00", "updated_at": null} -POST: /v1/portgroups {'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +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-09-20T14:58:05.719990+00:00', 'updated_at': None} +POST: /v1/heartbeat/4b65f940-f70e-48a2-b42b-ef917809db12 {'callback_url': 'url'} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/portgroups/dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6 -Openstack-Request-Id: req-59e118d1-0f88-411c-83d7-ed6da7fb0706 +Openstack-Request-Id: req-48ad3498-3435-4ac8-af49-ea40cf51db37 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6", "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/dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6", "rel": "self"}, {"href": "http://localhost/portgroups/dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6", "rel": "bookmark"}], "standalone_ports_supported": true, "mode": "active-backup", "properties": {}, "ports": [{"href": "http://localhost/v1/portgroups/dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6/ports", "rel": "self"}, {"href": "http://localhost/portgroups/dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6/ports", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:43.796387+00:00", "updated_at": null} -GET: /v1/portgroups/dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6 {} -GOT:{'uuid': 'dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6', '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/dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6', 'rel': 'self'}, {'href': 'http://localhost/portgroups/dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6', 'rel': 'bookmark'}], 'standalone_ports_supported': True, 'mode': 'active-backup', 'properties': {}, 'ports': [{'href': 'http://localhost/v1/portgroups/dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/dfefefb9-3cf8-4b82-98ba-0c79c66a4aa6/ports', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:43.796387+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, 'mode': '802.3ad', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 406 Not Acceptable -Content-Type: application/json -Openstack-Request-Id: req-96bd8589-8903-4526-a63a-562416395042 -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/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-b275e6b3-6760-42f5-b34f-c28a9d96ec80 -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/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'mode': '802.3ad', 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-0e51b1f4-f092-4fe0-8810-36696204f182 -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": "2020-08-18T08:12:44.401603+00:00", "updated_at": null} -POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'foo', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created -Content-Type: application/json -Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 -Openstack-Request-Id: req-23e85d8d-5028-4b1c-8538-18b7b2e39603 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 4b65f940-f70e-48a2-b42b-ef917809db12 could not be found.\", \"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-9c3bcfdc-a4ab-4afe-916d-debee5c79cbf 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": "2020-08-18T08:12:44.752228+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': '2020-08-18T08:12:44.752228+00:00', 'updated_at': None}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_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.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__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.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_ramdisk.TestHeartbeat.test_ok_agent_version -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version ... ok -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios_with_no_boot_mode ... ok -ironic.tests.unit.common.test_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_bios -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_boot_iso_for_bios ... ok -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-42469ea5-8789-4e55-91df-f6b880b8dce9 +POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123.json {'callback_url': 'url'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-d1dd3b08-dc5e-4092-a0ca-064fdc100138 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}"} -PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'op': 'remove'}] -GOT:Response: 400 Bad Request + +POST: /v1/heartbeat/1165933a-01aa-48a8-8244-408f0d9a0f80 {'callback_url': 'url'} +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-8f5bd5cb-74b9-40ea-916c-87ccdef5a90e +Openstack-Request-Id: req-48c2e938-d5b9-48a7-92f4-65fd965c1646 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': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"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': 'f67d930d-1ec9-46ca-b3d5-ce668ce249df', '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/f67d930d-1ec9-46ca-b3d5-ce668ce249df', 'rel': 'self'}, {'href': 'http://localhost/nodes/f67d930d-1ec9-46ca-b3d5-ce668ce249df', '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=342f4b6e-ff01-41ae-a4c5-76577bf9adf2 {} +GOT:{'node': {'uuid': '342f4b6e-ff01-41ae-a4c5-76577bf9adf2', '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/342f4b6e-ff01-41ae-a4c5-76577bf9adf2', 'rel': 'self'}, {'href': 'http://localhost/nodes/342f4b6e-ff01-41ae-a4c5-76577bf9adf2', '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?node=test-node {} +GOT:{'connectors': [{'uuid': '0556827a-c2e7-488a-bb0b-8ac6158b790a', 'type': 'iqn', 'connector_id': 'test-value-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/0556827a-c2e7-488a-bb0b-8ac6158b790a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/0556827a-c2e7-488a-bb0b-8ac6158b790a', 'rel': 'bookmark'}]}, {'uuid': '6b09bf64-b01f-4ffd-ab71-66d6cd85b2b9', 'type': 'iqn', 'connector_id': 'test-value-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/6b09bf64-b01f-4ffd-ab71-66d6cd85b2b9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/6b09bf64-b01f-4ffd-ab71-66d6cd85b2b9', 'rel': 'bookmark'}]}, {'uuid': '2a0a55cc-76f2-419f-a6a4-780a5cd2bd2c', 'type': 'iqn', 'connector_id': 'test-value-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/2a0a55cc-76f2-419f-a6a4-780a5cd2bd2c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2a0a55cc-76f2-419f-a6a4-780a5cd2bd2c', 'rel': 'bookmark'}]}]} +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-c57a5eac-6983-4030-a6a4-20e30056d553 +Openstack-Request-Id: req-687da778-dc4d-450b-bf60-bcdfd3097fd7 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 {'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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: 200 OK Content-Type: application/json -Location: http://localhost/v1/volume/connectors/29a3ddab-82d2-4978-a269-ecf51ee96656 -Openstack-Request-Id: req-1445f2ec-6f92-4d8c-a4b8-a1f6b96f6793 +Openstack-Request-Id: req-bd9ab9a9-5d57-4f88-93e6-9f78630b98d9 X-Openstack-Ironic-Api-Maximum-Version: 1.46 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "29a3ddab-82d2-4978-a269-ecf51ee96656", "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/29a3ddab-82d2-4978-a269-ecf51ee96656", "rel": "self"}, {"href": "http://localhost/volume/connectors/29a3ddab-82d2-4978-a269-ecf51ee96656", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:43.696566+00:00", "updated_at": null} -GET: /v1/volume/connectors/29a3ddab-82d2-4978-a269-ecf51ee96656 {} -GOT:{'uuid': '29a3ddab-82d2-4978-a269-ecf51ee96656', '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/29a3ddab-82d2-4978-a269-ecf51ee96656', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/29a3ddab-82d2-4978-a269-ecf51ee96656', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:43.696566+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': 123} -GOT:Response: 400 Bad Request +{"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-09-20T14:58:26.210554+00:00", "updated_at": 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 Content-Type: application/json -Openstack-Request-Id: req-d2438407-0780-4a37-ab9c-1bf06922f117 +Openstack-Request-Id: req-c5d2964e-b270-40a7-8bd3-84686f3ee361 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/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"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': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-2ba91557-4b37-498e-acee-3064659b02e9 +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +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-513e08fc-8b03-42a8-8fb8-6d8ebe1fa52f 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": "2020-08-18T08:12:44.133571+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': '2020-08-18T08:12:44.133571+00:00', 'updated_at': None} -GET: /v1/volume/targets {} -GOT:{'targets': [{'uuid': '9deb6c37-33b4-4f65-95f0-702f3176676c', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/9deb6c37-33b4-4f65-95f0-702f3176676c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/9deb6c37-33b4-4f65-95f0-702f3176676c', 'rel': 'bookmark'}]}, {'uuid': 'a93024fa-245c-46c4-9985-cb33728390ff', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/a93024fa-245c-46c4-9985-cb33728390ff', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a93024fa-245c-46c4-9985-cb33728390ff', 'rel': 'bookmark'}]}, {'uuid': 'abc95aa8-96c1-41e9-a3fa-53920cd00f33', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/abc95aa8-96c1-41e9-a3fa-53920cd00f33', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/abc95aa8-96c1-41e9-a3fa-53920cd00f33', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=abc95aa8-96c1-41e9-a3fa-53920cd00f33'} -GET: /v1/volume/targets?node=test-node {} -GOT:{'targets': [{'uuid': '76589645-9daf-416d-9d55-66ae5d095541', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/76589645-9daf-416d-9d55-66ae5d095541', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/76589645-9daf-416d-9d55-66ae5d095541', 'rel': 'bookmark'}]}, {'uuid': 'c8dfd5c5-0e72-4f38-9bd4-70612df04ece', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/c8dfd5c5-0e72-4f38-9bd4-70612df04ece', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c8dfd5c5-0e72-4f38-9bd4-70612df04ece', 'rel': 'bookmark'}]}, {'uuid': 'f47ceb2d-5219-4141-812a-636568ef177e', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/f47ceb2d-5219-4141-812a-636568ef177e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f47ceb2d-5219-4141-812a-636568ef177e', 'rel': 'bookmark'}]}]} -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=boot_index,extra {}ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one_custom_fields +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unknown argument: \\\"detail\\\"\", \"debuginfo\": null}"} +GET: /v1/volume/targets {}ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_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.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.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.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.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_random_no_zeros ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks ... ok +ironic.tests.unit.api.controllers.v1.test_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_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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions ... ok +ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume.TestGetVolume.test_get_volume_invalid_api_version ... ok +ironic.tests.unit.api.test_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_onedone +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone ... 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.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_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_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_utils.TestApiUtils.test_validate_limit -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_limit ... 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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_done ... ok +ironic.tests.unit.api.controllers.v1.test_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_target.TestListVolumeTargets.test_many +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_many ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ... ok +ironic.tests.unit.common.test_exception.TestIronicException.test___init__ +ironic.tests.unit.common.test_exception.TestIronicException.test___init__ ... ok +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_exception ... ok +ironic.tests.unit.api.controllers.v1.test_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_target.TestPatch.test_add_node_uuid_invalid_type +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type ... ok +ironic.tests.unit.common.test_fsm.FSMTest.test_process_event +ironic.tests.unit.common.test_fsm.FSMTest.test_process_event ... 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_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.TestGlanceImageService.test_download_with_retries +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_with_retries ... ok +ironic.tests.unit.api.controllers.v1.test_volume_connector.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.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.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.common.test_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_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_multiple_containers ... ok +ironic.tests.unit.api.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_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid ... 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.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.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.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.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_node_id ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_error ... ok +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_vol_not_found ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_sort_key_invalid ... ok -ironic.tests.unit.common.test_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_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 -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_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.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_no_such_prop ... ok +ironic.tests.unit.api.controllers.v1.test_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_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.common.test_context.RequestContextTestCase.test_from_dict +ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict ... 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.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.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_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached +ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_not_found ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format ... ok +ironic.tests.unit.common.test_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_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.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.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_image_service.FileImageServiceTestCase.test_download_copy_fail +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ... 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.common.test_image_service.FileImageServiceTestCase.test_show +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... ok +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_validate_href ... ok +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href ... 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_images.FsImageTestCase.test__generate_isolinux_cfg +ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg ... 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.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.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.IronicImagesTestCase.test_download_size +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... 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_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.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.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_get_hardware_type_existing ... ok -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-4c34697e-43c5-41c1-b601-9f924eac037a +Openstack-Request-Id: req-7e8bf311-b75f-40f2-90a5-86cd15cada71 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/volume/connectors/6d4e94c3-e584-4821-864d-48e319df8fa4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 404 Not Found +{"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', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-eecc6dba-e13d-4704-8d1b-be3faadda2e0 +Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 +Openstack-Request-Id: req-a92e0963-cc53-4e76-843e-bc3657be1528 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 6d4e94c3-e584-4821-864d-48e319df8fa4 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'} +{"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-09-20T14:58:23.093577+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-09-20T14:58:23.093577+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/ {} 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': {}} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-c258a89f-0b16-4869-862a-57ff1ee7cd2d -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', '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-77fc9ba0-1ba4-4c1a-ae58-38af9060ad13 +Openstack-Request-Id: req-340cbf72-c8f3-4683-8a36-a4ab2fe8417d 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?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 "} -GET: /v1/volume/targets {} -GOT:{'targets': []} -GET: /v1/volume/targets?fields=uuid,extra {} -GOT:{'targets': [{'uuid': '248ca77b-68a2-444d-827c-cab270d421ed', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/248ca77b-68a2-444d-827c-cab270d421ed', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/248ca77b-68a2-444d-827c-cab270d421ed', 'rel': 'bookmark'}]}, {'uuid': '274d8aee-89a5-4834-a0d5-c4b65a300159', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/274d8aee-89a5-4834-a0d5-c4b65a300159', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/274d8aee-89a5-4834-a0d5-c4b65a300159', 'rel': 'bookmark'}]}, {'uuid': '14454a20-628d-4305-85cb-4bc6c034bcc5', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/14454a20-628d-4305-85cb-4bc6c034bcc5', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/14454a20-628d-4305-85cb-4bc6c034bcc5', 'rel': 'bookmark'}]}]} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": 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-da3ba1c0-71ba-4b7f-9618-ddd005f55187 +Openstack-Request-Id: req-41e9c9b0-d023-42c4-9293-bdda04fb657e 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': '/node_id', 'op': 'remove'}] -GOT:Response: 400 Bad Request +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-115f2cbe-9245-4921-9331-1dbdf8434098 +Openstack-Request-Id: req-f67052e8-4238-4a03-b28e-b3efc8f1b9c9 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': '/boot_index', 'value': 100, 'op': 'replace'}] -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}"} +PATCH: /v1/volume/connectors/fee6a8e1-305a-4983-b27e-446995dd52f5 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-eb3cddac-bede-4126-a3ab-5315ed04ceea +Openstack-Request-Id: req-00eab41c-f5ff-4b53-bce1-3b8629ecf906 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": "2020-08-18T08:12:43.625232+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': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector fee6a8e1-305a-4983-b27e-446995dd52f5 could not be found.\", \"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-6ce5b5b4-a6c1-4387-979f-c2b132538426 +Openstack-Request-Id: req-3e091ca1-af12-45bc-8852-f69ef14be9fd 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/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-be96761d-136f-4f48-abea-fa6fe2d63789 -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-9198fa36-3978-445d-9713-eb8ddae1bfe3 -{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"} -GET: /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'}]}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_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_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.TestNeutronClient.test_get_neutron_client_with_context -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context ... ok -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup -ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_no_restrict_lookup ... 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_get_temp_url_for_glance_image -ironic.tests.unit.common.test_images.FsImageTestCase.test_get_temp_url_for_glance_image ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid -ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid ... ok -ironic.tests.unit.common.test_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_deprecated_opts -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_deprecated_opts ... 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.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_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_utils.TestVendorPassthru.test_driver_vendor_passthru_sync -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_sync ... ok -ironic.tests.unit.api.controllers.v1.test_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_utils.TestVendorPassthru.test_get_controller_reserved_names -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ... 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.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.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_types.TestJsonType.test_invalid_values -ironic.tests.unit.api.controllers.v1.test_types.TestJsonType.test_invalid_values ... 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_images.IronicImagesTestCase.test_image_show_no_image_service -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_no_image_service ... ok -ironic.tests.unit.api.controllers.v1.test_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_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_versions.TestVersionConstants.test_max_ver_str -ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str ... ok -ironic.tests.unit.common.test_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_images.IronicImagesTestCase.test_image_to_raw -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port ... ok -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image ... 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.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_image ... ok -ironic.tests.unit.api.controllers.v1.test_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.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_remove_neutron_ports_list_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_list_fail ... 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.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_keystone.KeystoneTestCase.test_get_service_auth -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth ... ok -ironic.tests.unit.api.controllers.v1.test_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.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_with_client_id_to_network ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_multi ... ok +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute type. Value: 'None'. Mandatory field missing.\", \"debuginfo\": null}"} +GET: /v1/volume/targets?detail=True&limit=3 {} +GOT:{'targets': [{'uuid': 'f072f30c-f6b4-48f0-8f04-0f0c752bcf80', '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/f072f30c-f6b4-48f0-8f04-0f0c752bcf80', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f072f30c-f6b4-48f0-8f04-0f0c752bcf80', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:41.386065+00:00', 'updated_at': None}, {'uuid': '04a618f4-4062-42fd-8521-c4b13e314ac0', '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/04a618f4-4062-42fd-8521-c4b13e314ac0', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/04a618f4-4062-42fd-8521-c4b13e314ac0', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:41.474505+00:00', 'updated_at': None}, {'uuid': 'a1dda502-c4ec-4fbe-b6c9-985e6adcd532', '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/a1dda502-c4ec-4fbe-b6c9-985e6adcd532', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a1dda502-c4ec-4fbe-b6c9-985e6adcd532', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:41.558053+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=a1dda502-c4ec-4fbe-b6c9-985e6adcd532'}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.TestListVolumeTargets.test_get_one +ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_one ... ok -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-a7e2ae3d-c81a-4f11-ab5a-d5b120f498cb -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": "2020-08-18T08:12:41.254683+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 +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-aa33339b-4332-48f5-b7d8-fad818bb5266 +Openstack-Request-Id: req-60278d86-e07a-4ffa-b36f-65cb77b8b472 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': '/node_id', 'value': '1', 'op': 'replace'}] +{"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': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-1ac85d4d-e402-4a90-a976-a154bd33664f +Openstack-Request-Id: req-cb2a3c28-94e2-4b25-9129-7aca1546e167 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': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] -GOT:Response: 200 OK +{"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 -Openstack-Request-Id: req-0b723013-199c-4a32-a910-6ae64d283b80 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-308991be-957a-41ba-9d11-46c6c1caf1c3 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": "2020-08-18T08:12:42.235745+00:00", "updated_at": null} -PATCH: /v1/portgroups/pg.1.json [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"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-09-20T14:58:27.729696+00:00", "updated_at": null} +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/?limit=3 {} +GOT:{'targets': [{'uuid': '056a81c8-189a-4494-8cb8-bf028c097a17', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/056a81c8-189a-4494-8cb8-bf028c097a17', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/056a81c8-189a-4494-8cb8-bf028c097a17', 'rel': 'bookmark'}]}, {'uuid': '963903a1-768f-431d-9d63-437cae132d3b', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/963903a1-768f-431d-9d63-437cae132d3b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/963903a1-768f-431d-9d63-437cae132d3b', 'rel': 'bookmark'}]}, {'uuid': '1ec7238e-3dce-49e9-99d8-5addc5b04ab4', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/1ec7238e-3dce-49e9-99d8-5addc5b04ab4', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1ec7238e-3dce-49e9-99d8-5addc5b04ab4', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=1ec7238e-3dce-49e9-99d8-5addc5b04ab4'} +GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-fbb9f3f8-cbda-458f-b7f7-e194fafd7360 +Openstack-Request-Id: req-d27111d9-2c96-47c0-bc96-61127e69a34d 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": "2020-08-18T08:12:42.594552+00:00", "updated_at": null} -PATCH: /v1/portgroups/pg.1 [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] +{"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 Content-Type: application/json -Openstack-Request-Id: req-0a94a088-711a-4e8f-bf31-a389d77b0a25 +Openstack-Request-Id: req-d9007115-2616-42aa-8119-1c35c0d7dab4 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': '/extra/vif_port_id', 'value': 'foo', 'op': 'add'}, {'path': '/extra/vif_port_id', 'value': 'bar', 'op': 'add'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"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'}]} +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 "} +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-2372aab7-962c-4ade-bad3-782f9f316356 +Openstack-Request-Id: req-d51dd1c1-5ef4-4fa5-9841-00d06b3c06ba 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": "2020-08-18T08:12:43.081394+00:00", "updated_at": "2020-08-18T08:12:43.194723+00:00"} -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'} +{"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-09-20T14:58:37.108507+00:00", "updated_at": null} +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-939725ec-ab32-459f-affa-253ff5662b05 +Openstack-Request-Id: req-afc614e6-8ef9-4671-b43d-3ab0372b8241 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}"} -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-25dd6ec5-0c61-408f-9526-66591d7d2f61 -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/lookup?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=cf63759f-f711-469f-a893-6bc3e76acaea {} +{"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/6fe3a6b0-61e5-43c8-aa24-67179bbf6119 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json -Openstack-Request-Id: req-0b79d2df-ec79-4060-9623-23cb190da3ac +Openstack-Request-Id: req-2a024150-3a6a-44c5-8590-05c6f2832da7 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}"} -DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -GOT:Response: 409 Conflict +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 6fe3a6b0-61e5-43c8-aa24-67179bbf6119 could not be found.\", \"debuginfo\": null}"} +POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-86a94caf-768c-46d2-aca4-398fb3b859b0 +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-273762b0-13a2-4c2c-9618-1dffb96744c8 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_connector.TestDelete.test_delete_volume_connector_node_locked -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestDelete.test_delete_volume_connector_node_locked ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface_with_client_id ... ok -ironic.tests.unit.api.controllers.v1.test_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 -INFO [alembic.runtime.migration] Context impl SQLiteImpl. -INFO [alembic.runtime.migration] Will assume non-transactional DDL. -ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version -ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ... ok -ironic.tests.unit.common.test_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.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_fail ... ok -ironic.tests.unit.api.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.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.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_collection_links ... ok -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid ... 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.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.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.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ... ok -ironic.tests.unit.common.test_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_policy.PolicyInCodeTestCase.test_is_member -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member ... 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.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_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_utils.TestApiUtils.test_is_path_removed_replace -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create ... 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_cinder.TestCinderActions.test_attach_volumes_attach_record_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_attach_record_failure ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait -ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_trait ... 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.PolicyInCodeTestCaseNegative.test_show_password -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target +{"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}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.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_token -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_token ... 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_volume_connector.TestListVolumeConnectors.test_detail_against_single -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_against_single ... ok -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified -ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified ... 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_neutron.TestNeutronClient.test_out_range_auth_strategy -ironic.tests.unit.common.test_neutron.TestNeutronClient.test_out_range_auth_strategy ... 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_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_connector.TestListVolumeConnectors.test_get_one_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_invalid_api_version ... ok -ironic.tests.unit.common.test_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_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_context.RequestContextTestCase.test_get_admin_context -ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_all_ports_fail ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_and_fields ... ok -ironic.tests.unit.common.test_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.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.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_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.TestValidateNetwork.test_duplicate -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... 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_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.HardwareTypeLoadTestCase.test_none_storage_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_image ... ok +ironic.tests.unit.api.controllers.v1.test_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.common.test_keystone.KeystoneTestCase.test_get_auth +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth ... ok -GOT:{'boot_index': 0, 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} -GET: /v1/volume/targets?sort_key=foo {} -GOT:Response: 400 Bad Request +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-0666af0c-3c75-4c72-9d33-66328b3ab849 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-f730363a-4a33-4c65-9d4a-56c21d557a59 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 {} -GOT:Response: 400 Bad Request +{"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-09-20T14:58:27.952695+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-09-20T14:58:27.952695+00:00', 'updated_at': None} +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 -Openstack-Request-Id: req-c166206a-d683-4c99-ae87-699ff34de348 +Location: http://localhost/v1/volume/connectors/ec695f6e-ed10-4945-86ec-c9f0306ec71c +Openstack-Request-Id: req-74164baf-5a17-4e0a-9287-27007666b5e4 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 {} -GOT:Response: 400 Bad Request +{"uuid": "ec695f6e-ed10-4945-86ec-c9f0306ec71c", "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/ec695f6e-ed10-4945-86ec-c9f0306ec71c", "rel": "self"}, {"href": "http://localhost/volume/connectors/ec695f6e-ed10-4945-86ec-c9f0306ec71c", "rel": "bookmark"}], "created_at": "2021-09-20T14:58:30.634196+00:00", "updated_at": null} +GET: /v1/volume/connectors/ec695f6e-ed10-4945-86ec-c9f0306ec71c {} +GOT:{'uuid': 'ec695f6e-ed10-4945-86ec-c9f0306ec71c', '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/ec695f6e-ed10-4945-86ec-c9f0306ec71c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ec695f6e-ed10-4945-86ec-c9f0306ec71c', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:30.634196+00:00', 'updated_at': None} +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-4b2df4c3-5948-4752-9c74-0f2b28b60e44 +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-0420326a-37ac-4fc2-992f-f22f76d90f70 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', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] -GOT:Response: 200 OK +{"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-09-20T14:58:32.843256+00:00", "updated_at": null} +POST: /v1/volume/connectors {'uuid': '014262c7-838e-4725-b877-026ba3362e44', '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-c8d41c4b-7a23-4536-80b8-0c22606bc9ef +Openstack-Request-Id: req-861a6f13-f54c-427c-bfef-631f89c47c2f 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": "2020-08-18T08:12:45.614931+00:00", "updated_at": null} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'add'}] -GOT:Response: 200 OK +{"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-b806b596-5882-460c-a63f-12d29f94ac9a +Openstack-Request-Id: req-0587c560-0d66-4a62-97c3-55d8d1b64ca6 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": "2020-08-18T08:12:45.862078+00:00", "updated_at": null} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] -GOT:Response: 200 OK +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fake-node is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} +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-b5d81274-8ee8-402c-a027-77fe30b47e6e +Openstack-Request-Id: req-fa2f79bd-733e-497c-9b71-430aa5312e3d 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": "2020-08-18T08:12:46.081680+00:00", "updated_at": "2020-08-18T08:12:46.093035+00:00"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra', 'op': 'remove'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-484ded9d-210b-4794-bb33-1814a4b28bd2 +Openstack-Request-Id: req-86b70573-2bdc-47b2-a0cb-a2d77ef2f05f 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": "2020-08-18T08:12:46.081680+00:00", "updated_at": "2020-08-18T08:12:46.093035+00:00"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +{"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-09-20T14:58:37.465354+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: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-2dbe1016-188f-4dec-a8bc-ece73f080c89 +Openstack-Request-Id: req-dcb3bbf6-7357-4eea-a770-e039f6aeb50f 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': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 201 Created +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"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 Content-Type: application/json -Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-29173e07-ad07-4677-a854-20a347150d12 +Openstack-Request-Id: req-7f245595-435e-4c50-af12-63ca9691c67a 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} -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'}, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 400 Bad Request +{"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': {'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-302a044d-6f25-4433-99bc-8b3d4b17c56b +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-4d2a2756-7867-4dca-b4cc-c53f04571e74 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}"}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.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_policy.PolicyInCodeTestCaseNegative.test_public_api -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api ... 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.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_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.TestValidateNetwork.test_failure -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... 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_pxe_config_uefi_grub -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_grub ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra +{"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-09-20T14:58:42.644161+00:00", "updated_at": null}ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_valid_extra ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid ... 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_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_neutron.TestValidateNetwork.test_not_found -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_invalid_api_version ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_copy_file_different ... ok -ironic.tests.unit.api.test_acl.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_noauth_token_removed -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed ... 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_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... ok -ironic.tests.unit.common.test_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_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set -ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug ... 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_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_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_neutron.TestUnbindPort.test_unbind_neutron_port -ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ... ok -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint -ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint ... ok -ironic.tests.unit.api.controllers.v1.test_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.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.TestGlanceSerializer.test_serialize -ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... 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_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_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_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_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_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_key_detected ... ok -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request -ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_get_request ... ok -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id -ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPost.test_create_volume_connector_doesnt_contain_id ... ok -ironic.tests.unit.common.test_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_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_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.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros -ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_zeros ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestDelete.test_delete_volume_target_byid ... ok -ironic.tests.unit.common.test_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 -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi ... 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_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ... ok -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2_onedone ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_is_root_volume ... 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_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_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity_empty_base ... ok -ironic.tests.unit.api.controllers.v1.test_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.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_pxe_utils.TestPXEUtils.test_default_grub_config -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_grub_config ... 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.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.TestUtils.test_get_sensors_notifier -ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier ... 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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone -ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_notdone ... ok -ironic.tests.unit.api.controllers.v1.test_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.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_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.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_rpc_service.TestRPCService.test_start -ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start ... 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_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_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_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_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.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error +ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request_error ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin ... ok +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin +ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid ... ok +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session ... 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.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.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid ... ok -ironic.tests.unit.common.test_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_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.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ... 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_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_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_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_cinder.TestCinderUtils.test_is_volume_available -ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available ... 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_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_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_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.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type ... ok -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail ... 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_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_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_utils.TempFilesTestCase.test_check_dir_ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ... 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_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_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_create_object_put_object_fails -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails ... 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_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_client_notfound_converts_to_imagenotfound ... ok +ironic.tests.unit.api.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_acl.TestACL.test_non_authenticated +ironic.tests.unit.api.test_acl.TestACL.test_non_authenticated ... 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_cinder.TestCinderUtils.test__get_attachment_id +ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_invalid_image_info ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_uuid ... ok +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable +ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... 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.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_driver_factory.DriverLoadTestCase.test_driver_empty_entry +ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ... 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_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_hooks.TestPublicUrlHook.test_before_host_url +ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ... 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.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check +ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ... 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_image_service.FileImageServiceTestCase.test_download_hard_link +ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link ... ok +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ... 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 -GET: /v1/volume/connectors/?limit=3 {} -GOT:{'connectors': [{'uuid': '3e910d10-b4bd-4f3b-89cb-ebd74c64ad4f', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/3e910d10-b4bd-4f3b-89cb-ebd74c64ad4f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3e910d10-b4bd-4f3b-89cb-ebd74c64ad4f', 'rel': 'bookmark'}]}, {'uuid': '4b45be39-1a04-41e4-a696-4afbe5cf4cf7', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/4b45be39-1a04-41e4-a696-4afbe5cf4cf7', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/4b45be39-1a04-41e4-a696-4afbe5cf4cf7', 'rel': 'bookmark'}]}, {'uuid': '967941d0-d68f-40df-9b13-e6fcd86508f4', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/967941d0-d68f-40df-9b13-e6fcd86508f4', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/967941d0-d68f-40df-9b13-e6fcd86508f4', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&limit=3&marker=967941d0-d68f-40df-9b13-e6fcd86508f4'} -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': '2020-08-18T08:12:46.814275+00:00', 'updated_at': None}]} -GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?detail=True {} -GOT:Response: 400 Bad Request -Content-Type: application/json -Openstack-Request-Id: req-f72fdbcb-54ed-4586-b4d9-4ba6e9b0472c +POST: /v1/heartbeat/test.1 {'callback_url': 'url'} +GOT:Response: 202 Accepted +Openstack-Request-Id: req-eb4ac065-75e9-469a-9f2d-a78e64b1b92b 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} + +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 -{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -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-a4aa3a1d-504c-4a41-a090-5e10134d883d +Openstack-Request-Id: req-7a6f5133-2f56-455f-b3ef-5c2c4e0b464d 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': '/uuid', 'op': 'remove'}] -GOT:Response: 400 Bad Request +X-Openstack-Ironic-Api-Version: 1.1 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} +GET: /v1/volume/connectors?detail=True&limit=3 {} +GOT:{'connectors': [{'uuid': '7dda727a-46b9-4674-92d7-758974e406af', 'type': 'iqn', 'connector_id': 'test-connector_id-0', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/7dda727a-46b9-4674-92d7-758974e406af', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7dda727a-46b9-4674-92d7-758974e406af', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:28.868196+00:00', 'updated_at': None}, {'uuid': '03d2b8a5-005f-45ce-a408-dd6ff8bb0b76', 'type': 'iqn', 'connector_id': 'test-connector_id-1', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/03d2b8a5-005f-45ce-a408-dd6ff8bb0b76', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/03d2b8a5-005f-45ce-a408-dd6ff8bb0b76', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:28.952262+00:00', 'updated_at': None}, {'uuid': 'a873d4e1-3a82-4c9c-a96d-ef88735e1035', 'type': 'iqn', 'connector_id': 'test-connector_id-2', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/connectors/a873d4e1-3a82-4c9c-a96d-ef88735e1035', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a873d4e1-3a82-4c9c-a96d-ef88735e1035', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:29.018522+00:00', 'updated_at': None}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&detail=True&limit=3&marker=a873d4e1-3a82-4c9c-a96d-ef88735e1035'} +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-09-20T14:58:31.446572+00:00', 'updated_at': None}]} +GET: /v1/volume/connectors {} +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-efa9ef8c-85d6-4f67-abaf-4b992d4016fa -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": "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-8ed1643d-ebf6-41f3-868b-7ff8c3849625 -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": "2020-08-18T08:12:48.087471+00:00", "updated_at": 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 +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-6e758648-785f-47c9-8e7b-60fd4aafa70f +Openstack-Request-Id: req-7a3003f7-e2ad-49cc-9069-0b33bfab10af 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": "2020-08-18T08:12:48.484826+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': '2020-08-18T08:12:48.484826+00:00', 'updated_at': None} -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': '2020-08-18T08:12:48.688836+00:00', 'updated_at': None}]} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'op': 'remove'}] +{"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', 'value': '1', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-f3962c2b-cbe3-4d9b-b1d4-6fb5133a00a8 +Openstack-Request-Id: req-70bbf91d-18f4-4f64-97d5-9ecb06271a53 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/non-existent', 'op': 'remove'}] +{"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', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-53c7a47c-7906-4968-a158-274f1eedc317 +Openstack-Request-Id: req-90502646-0059-4571-925b-1f31d875ffcb 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': '/boot_index', 'value': 0, 'op': 'replace'}] +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute connector_id. 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': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-18773998-2537-4526-9c24-db5e234a0ced -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}"}ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state ... ok -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format -ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_invalid_node_uuid_format ... ok -ironic.tests.unit.common.test_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_wsgi_service.TestWSGIService.test_workers_set_correct_setting -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_correct_setting ... ok -ironic.tests.unit.api.controllers.v1.test_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.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_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_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_swift.SwiftTestCase.test___init__ -ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ... 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.common.test_swift.SwiftTestCase.test_delete_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... 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.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_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_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_keystone.KeystoneTestCase.test_get_auth -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth ... 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_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties -ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_get_logical_disk_properties ... 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.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.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.api.test_acl.TestACL.test_public_api -ironic.tests.unit.api.test_acl.TestACL.test_public_api ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property ... ok -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_without_root_helper ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_custom_schema ... 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_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_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_get_updated_capabilities -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ... 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_fsm.FSMTest.test__validate_target_state -ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ... ok -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects -ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects ... ok -ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions -ironic.tests.unit.api.test_acl.TestACL.test_public_api_with_path_extensions ... 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_fsm.FSMTest.test_target_state_stable -ironic.tests.unit.common.test_fsm.FSMTest.test_target_state_stable ... 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_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.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error -ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive_failed_error ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_admin ... ok -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_validate_and_normalize_mac ... ok -ironic.tests.unit.common.test_states.StatesTest.test_state_values_length -ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ... ok -ironic.tests.unit.common.test_glance_service.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_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 - -POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url', 'agent_version': '1.4.1'} -GOT:Response: 202 Accepted -Openstack-Request-Id: req-f0a24e7d-6494-4a84-afee-3c76cb9a1e6e +Openstack-Request-Id: req-6eb9f277-c3e2-498b-aa1f-a3d85c465ac8 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?addresses=11:22:33:44:55:66,66:55:44:33:22:11&node_uuid=bdc042e3-5b62-4599-86a7-fbe005e88e08 {} -GOT:{'node': {'uuid': 'bdc042e3-5b62-4599-86a7-fbe005e88e08', '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/bdc042e3-5b62-4599-86a7-fbe005e88e08', 'rel': 'self'}, {'href': 'http://localhost/nodes/bdc042e3-5b62-4599-86a7-fbe005e88e08', '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&fields=connector_id,extra {} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-79f3fcac-2971-4cae-88dd-96349cfc2dc7 +Openstack-Request-Id: req-f15b5a3b-bb04-4098-a5df-cab52b02a313 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/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] -GOT:Response: 400 Bad Request +{"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?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/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-09-20T14:58:44.864677+00:00', 'updated_at': None} +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-529ceeed-9afc-4bd1-8840-080350f338c9 +Openstack-Request-Id: req-c38a4ada-1348-4f90-870d-37416fbcd127 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': '/extra/foo', 'value': 'bar', 'op': 'add'}] +{"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-09-20T14:58:46.801636+00:00", "updated_at": null}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.test_root.TestV1Root.test_get_v1_32_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_32_root ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_raid_interface_no_default ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +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 +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_invalid_power_state ... ok +ironic.tests.unit.api.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 +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__check_versions ... 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.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_images.FsImageTestCase.test__create_root_fs +ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ... 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 + +GOT:{'targets': []} +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/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 +GET: /v1/volume/targets {} +GOT:{'targets': [{'uuid': 'de7f3ee2-b58f-466f-bda9-dfd87b03df97', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/de7f3ee2-b58f-466f-bda9-dfd87b03df97', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/de7f3ee2-b58f-466f-bda9-dfd87b03df97', 'rel': 'bookmark'}]}, {'uuid': 'a1e9c8c9-b573-4e60-b779-579751938a22', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/a1e9c8c9-b573-4e60-b779-579751938a22', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a1e9c8c9-b573-4e60-b779-579751938a22', 'rel': 'bookmark'}]}, {'uuid': '76087ede-584b-4f36-9b97-628c8976eb05', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/76087ede-584b-4f36-9b97-628c8976eb05', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/76087ede-584b-4f36-9b97-628c8976eb05', 'rel': 'bookmark'}]}, {'uuid': 'e1df97d4-9b46-4596-abca-0ebc2ffc1a4d', 'volume_type': 'iscsi', 'boot_index': 3, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/e1df97d4-9b46-4596-abca-0ebc2ffc1a4d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e1df97d4-9b46-4596-abca-0ebc2ffc1a4d', 'rel': 'bookmark'}]}, {'uuid': 'b4a9445a-8522-46ab-800e-5820e8594226', 'volume_type': 'iscsi', 'boot_index': 4, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/b4a9445a-8522-46ab-800e-5820e8594226', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b4a9445a-8522-46ab-800e-5820e8594226', 'rel': 'bookmark'}]}]} +GET: /v1/volume/targets?sort_key=uuid {} +GOT:{'targets': [{'uuid': '011227f7-38c1-46d7-921f-2b0505ebeeee', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/011227f7-38c1-46d7-921f-2b0505ebeeee', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/011227f7-38c1-46d7-921f-2b0505ebeeee', 'rel': 'bookmark'}]}, {'uuid': '605b7319-0938-4024-8214-a511e259c80a', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/605b7319-0938-4024-8214-a511e259c80a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/605b7319-0938-4024-8214-a511e259c80a', 'rel': 'bookmark'}]}, {'uuid': 'f02a1fa0-d9a1-4afa-b9e9-491b763334ad', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/f02a1fa0-d9a1-4afa-b9e9-491b763334ad', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f02a1fa0-d9a1-4afa-b9e9-491b763334ad', 'rel': 'bookmark'}]}]} +GET: /v1/volume/targets?sort_key=foo {} +GOT:Response: 400 Bad Request Content-Type: application/json -Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 -Openstack-Request-Id: req-3bbab273-e2db-4e5e-b9b0-50d8ebaadf80 +Openstack-Request-Id: req-12992131-fb7c-480d-8aa0-321ab2ad1000 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": "2020-08-18T08:12:48.323282+00:00", "updated_at": null} -POST: /v1/volume/connectors {'uuid': '18ac66a8-2be5-4556-b3a3-e45cc231d3ae', 'type': 'iqn', 'connector_id': 'test-connector-id-456', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} -GOT:Response: 409 Conflict +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"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-9fac0feb-2d34-4867-a057-b7ae8dc2f952 -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: 204 No Content -Openstack-Request-Id: req-9acc1dc1-f924-4395-ad44-a388bfb43d38 +Openstack-Request-Id: req-4e4810c6-cee4-48bc-8d58-33ca6ef35d8a 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/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} +{"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-89e4419b-5333-4eef-9cf4-68d98c27acbc +Openstack-Request-Id: req-9baa8e88-7dd9-44cb-9d4b-5a3ccc9e7624 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/targets/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 properties is an invalid field for sorting\", \"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-d63cf5d4-5557-428c-8a4b-40c6d84dab3b +Openstack-Request-Id: req-59b664ea-52f6-437e-a393-a87c9ffd089a 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": "2020-08-18T08:12:48.988198+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 +{"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', 'op': 'remove'}] +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-b75a24fa-1ce4-426b-898a-d489b25eb5ed +Openstack-Request-Id: req-a060d36f-fd5f-45b7-80e3-6fd61e91ced2 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}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] +{"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-09-20T14:58:42.418863+00:00", "updated_at": "2021-09-20T14:58:42.616729+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-89d3465a-19c4-4150-b3d8-06129b00f2e7 +Openstack-Request-Id: req-ea9f846a-5def-442e-8912-8701abd581e1 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": "2020-08-18T08:12:49.515176+00:00", "updated_at": null} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] +{"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-09-20T14:58:42.418863+00:00", "updated_at": "2021-09-20T14:58:42.616729+00:00"} +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-3ae606eb-d46d-4d08-af80-98a232c37100 +Openstack-Request-Id: req-dc3a0aea-de37-47e0-93e7-a661b043eb98 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}"} -PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] -GOT:Response: 200 OK +{"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': '/uuid', 'op': 'remove'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-75f1d931-e7d0-4da1-9895-0dc215dceb7d +Openstack-Request-Id: req-ee33d250-7e5d-4b09-bdca-7a6c88dfe80a 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": "2020-08-18T08:12:50.188655+00:00", "updated_at": null}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.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_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_utils.JinjaTemplatingTestCase.test_render_string -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ... 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.common.test_glance_service.TestServiceUtils.test_is_glance_image -ironic.tests.unit.common.test_glance_service.TestServiceUtils.test_is_glance_image ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ... 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_utils.TempFilesTestCase.test__check_dir_writable_ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ... ok +{"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/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}]ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_multi ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_non_existent_node_uuid ... 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_network.GetPhysnetsByPortgroupID.test_one_port +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port ... 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.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults +ironic.tests.unit.cmd.test_conductor.ConductorStartTestCase.test_warn_about_unsafe_shred_parameters_defaults ... ok +ironic.tests.unit.api.controllers.v1.test_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.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_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 +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +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.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_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_exception.TestIronicException.test___init___json_serializable +ironic.tests.unit.common.test_exception.TestIronicException.test___init___json_serializable ... 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_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_keystone.KeystoneTestCase.test_get_auth_fail +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail ... ok +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set +ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service_client_already_set ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ... 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.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.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_glance_service.TestGlanceImageService.test_download_file_url +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url ... ok +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular +ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_replace_singular ... 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_detach_volumes_vol_not_found +ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_vol_not_found ... 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_cinder.TestCinderSession.test__get_cinder_session +ironic.tests.unit.common.test_cinder.TestCinderSession.test__get_cinder_session ... 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_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_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_no_key_detected ... ok +ironic.tests.unit.api.test_acl.TestACL.test_non_admin +ironic.tests.unit.api.test_acl.TestACL.test_non_admin ... 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_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_hash_file_for_sha512 -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_hash_file_for_sha512 ... 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.DefaultInterfaceTestCase.test_calculated_with_unsupported +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_unsupported ... 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_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_cinder.TestCinderActions.test_attach_volumes +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ... 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_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_no_answer ... 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.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config +ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config ... 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.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.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.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_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_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_multiple_ports ... ok +ironic.tests.unit.api.test_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.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_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached +ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached ... ok +ironic.tests.unit.api.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.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.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.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.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.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.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_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_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_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_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_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported +ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_unsupported ... ok +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback +ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface ... ok +ironic.tests.unit.api.controllers.v1.test_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.common.test_fsm.FSMTest.test_is_stable +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable ... 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_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_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_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_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_download_no_data +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_no_data ... 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_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info +ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__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_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_image_service.ServiceGetterTestCase.test_get_file_image_service +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_file_image_service ... ok ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header ironic.tests.unit.api.test_acl.TestACL.test_non_admin_with_admin_header ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start ... ok +ironic.tests.unit.common.test_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.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected +ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_endpoint_detected ... ok +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request +ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ... 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_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_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_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_neutron.TestValidateNetwork.test_not_found +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ... 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.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_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_policy.PolicyInCodeTestCaseNegative.test_node_create +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_create ... 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.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_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.api.test_acl.TestACL.test_public_api +ironic.tests.unit.api.test_acl.TestACL.test_public_api ... 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_policy.PolicyTestCase.test_authorize_access_forbidden +ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden ... 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_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_cinder.TestCinderUtils.test_is_volume_attached +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ... 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.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_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.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_doesnt_unregister_conductor ... ok -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file -ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file ... 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_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached -ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached ... ok -ironic.tests.unit.api.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.TestContextHook.test_context_hook_not_admin -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin ... ok -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.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_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_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_wsgi_service_with_ssl_enabled ... ok -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api -ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ... ok -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name -ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_name ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... 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_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_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.conductor.test_manager.BootDeviceTestCase.test_set_boot_device -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ... ok -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks -ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug_tracebacks ... ok -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_22_root ... ok -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_negative_setting ... ok +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available +ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available ... 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_image_service.HttpImageServiceTestCase.test_show_ansi_c +ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ... 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_context.RequestContextTestCase.test_thread_without_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_thread_without_context ... 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.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_url +ironic.tests.unit.common.test_image_service.ServiceGetterTestCase.test_get_glance_image_service_url ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_network_no_pxe_enabled_ports ... ok ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ... 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_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_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_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_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure +ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_failure ... ok +ironic.tests.unit.api.test_root.TestRoot.test_get_root +ironic.tests.unit.api.test_root.TestRoot.test_get_root ... 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_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_images.FsImageTestCase.test_create_vfat_image +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config ... ok +ironic.tests.unit.common.test_driver_factory.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_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_images.IronicImagesTestCase.test_converted_size +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size ... 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.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_soft_power_off_timeout ... ok -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root -ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root ... 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.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_neutron.TestNeutronNetworkActions.test_get_local_group_information -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_local_group_information ... 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.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_image_service.HttpImageServiceTestCase.test_download_fail_ioerror -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_ioerror ... 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.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.BootDeviceTestCase.test_get_boot_device_validate_fail -ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail ... ok -ironic.tests.unit.conductor.test_manager.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.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_image_service.HttpImageServiceTestCase.test_show_rfc_850 -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_850 ... ok -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race ... 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_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_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_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_images.IronicImagesTestCase.test_fetch_image_service +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ... ok +INFO [alembic.runtime.migration] Context impl SQLiteImpl. +INFO [alembic.runtime.migration] Will assume non-transactional DDL. +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_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.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_neutron.TestNeutronNetworkActions.test_remove_neutron_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ... 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_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_without_token +ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token ... 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_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_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__umount_without_raise -ironic.tests.unit.common.test_images.FsImageTestCase.test__umount_without_raise ... 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_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_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_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 -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 +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-cfba7005-b880-4d31-b5d6-965570d51a8e +Openstack-Request-Id: req-7f88167c-5f82-49de-8cfc-e3508a64ada2 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: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-ea2f6d1f-9eaf-4458-b757-4d60ead2e631 -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}"} -GET: / {} -GOT:Response: 200 OK -Content-Type: application/json -Openstack-Request-Id: req-f126a614-5615-4e62-9f21-52774d11719a -{"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 +{"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-09-20T14:58:49.294568+00:00", "updated_at": "2021-09-20T14:58:49.451008+00:00"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': 123, 'op': 'replace'}] +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-cf5d10bb-3613-4fa7-acfb-cc971a22c6ee +Openstack-Request-Id: req-40876f29-d3f9-44f0-ad37-b2d6075582c3 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/ {} +X-Openstack-Ironic-Api-Version: 1.46 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-6aed1990-cb94-42a7-b54d-7b9be66411e1 +Openstack-Request-Id: req-4a657dd9-cc00-4f2a-8e0d-1ad0bfc3ab98 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 {} +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-09-20T14:58:52.879912+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 Content-Type: application/json -Openstack-Request-Id: req-ce2bcf5e-5cae-48d1-ac59-dfd4c547a3d8 +Openstack-Request-Id: req-cf9a8627-764d-4dfe-b703-b6beea31027a 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 {} +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": "2021-09-20T14:58:55.028616+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: 404 Not Found Content-Type: application/json {"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} -GET: / {} +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-6d1fd61e-e135-4632-9144-90c97be05c7d -{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -GET: / {} -GOT:Response: 500 Internal Server Error +Openstack-Request-Id: req-84e9d51b-197d-4b31-a2c9-44b9a980694f +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/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created Content-Type: application/json -Openstack-Request-Id: req-f85f250c-c143-41af-8fd7-e43be6ce8305 -{"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:Response: 500 Internal Server Error +Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-e3a59da9-6b9a-405e-a50f-bc7aed3da305 +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-09-20T14:58:59.448767+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-f1d0ba87-288a-4696-8557-646da59569da -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} +Openstack-Request-Id: req-550dd325-b2f7-4a87-a649-28bd0ec56af0 +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}"} GET: / {} -GOT:Response: 500 Internal Server Error +GOT:Response: 200 OK Content-Type: application/json -Openstack-Request-Id: req-e68ea3f2-7ca9-44a6-9d58-c3c85eb46d61 -{"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'}], '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'}]} +Openstack-Request-Id: req-c5aa3270-aac0-44ca-8bd2-90652807cde9 +{"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-b1e4640b-c6bf-4411-9e21-821396c94885 +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: / {} +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'}} 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'}]} -func1() migrated 10 of 10 objects. +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'}]}ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root +ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root ... ok +ironic.tests.unit.common.test_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.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 +ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_2 ... 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_reserve_failure -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_reserve_failure ... 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.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_images.FsImageTestCase.test_create_vfat_image -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... ok +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_whole_disk_non_glance ... ok +ironic.tests.unit.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_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_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_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_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_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.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_no_storage_interface_default_from_conf ... ok +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface +ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_rescue_interface ... 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_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_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_network.GetPhysnetsByPortgroupID.test_exclude_port +ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port ... 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_default_ipxe_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config ... 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_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface +ironic.tests.unit.common.test_driver_factory.NetworkInterfaceFactoryTestCase.test_build_driver_for_task_unknown_network_interface ... ok +ironic.tests.unit.common.test_driver_factory.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_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_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_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_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_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_excludes_None ... ok +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports +ironic.tests.unit.common.test_network.GetPhysnetsForNodeTestCase.test_get_physnets_for_node_no_ports ... 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_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_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_neutron.TestNeutronNetworkActions.test_rollback_ports +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ... 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.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_cinder.TestCinderActions.test_attach_volumes_one_attached +ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes_one_attached ... ok +ironic.tests.unit.common.test_driver_factory.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_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_cinder.TestCinderClient.test_get_client +ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client ... 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_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_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_exception.TestIronicException.test___init___string_serializable +ironic.tests.unit.common.test_exception.TestIronicException.test___init___string_serializable ... 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_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_fsm.FSMTest.test_initialize +ironic.tests.unit.common.test_fsm.FSMTest.test_initialize ... 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_context.RequestContextTestCase.test_get_admin_context +ironic.tests.unit.common.test_context.RequestContextTestCase.test_get_admin_context ... 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_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_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_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_rescue_kr_info +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_rescue_kr_info ... 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_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_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_valid_interfaces ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ... 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_cinder.TestCinderActions.test_attach_volumes -ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ... 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_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set -ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_create_node_dynamic_driver_interfaces_set ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ... 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_download_size -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... 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_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_images.IronicImagesTestCase.test_image_to_raw_no_file_format -ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format ... ok -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api ... 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_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.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task ... ok -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_session ... 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.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_power_on ... ok -ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden -ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden ... 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_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_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_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_exception.TestIronicException.test___init__ -ironic.tests.unit.common.test_exception.TestIronicException.test___init__ ... 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_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_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_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_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url -ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ... 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.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.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_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_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_context.RequestContextTestCase.test_from_dict -ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict ... 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.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_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_network.TestNetwork.test_get_node_vif_ids_one_port_int_info -ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info ... ok -ironic.tests.unit.conductor.test_manager.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.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_image_service.HttpImageServiceTestCase.test_download_success -ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success ... 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_images.FsImageTestCase.test__umount_without_raise +ironic.tests.unit.common.test_images.FsImageTestCase.test__umount_without_raise ... 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_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.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.CreateNodeTestCase.test_create_node_validation_fails -ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node_validation_fails ... 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_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_driver_factory.DefaultInterfaceTestCase.test_from_config -ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_from_config ... 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_images.FsImageTestCase.test__generate_grub_cfg -ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ... 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.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_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context +ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_show_raises_when_no_authtoken_in_the_context ... ok +ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize +ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ... 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_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_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_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_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_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_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_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_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_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.TestUnbindPort.test_unbind_neutron_port +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios +ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_for_bios ... ok ironic.tests.unit.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_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_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.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.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_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_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_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_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_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_images.FsImageTestCase.test_create_vfat_image_dd_fails -ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image_dd_fails ... ok -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_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_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.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.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface -ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ... ok -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ... 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_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.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.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_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_rpc.TestRequestContextSerializer.test_deserialize_entity -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... 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.CreatePortTestCase.test_create_port_node_locked -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked ... 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_network.GetPhysnetsByPortgroupID.test_two_ports -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ... 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_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_rpc.TestUtils.test_get_versioned_notifier_no_notifier -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_notifier ... ok -ironic.tests.unit.conductor.test_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.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.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_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id -ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id ... ok -ironic.tests.unit.conductor.test_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.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_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_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.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.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_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_file_has_content_differ -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ ... 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_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.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.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_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_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_utils.GenericUtilsTestCase.test_safe_rstrip -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... 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.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ... ok -ironic.tests.unit.common.test_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_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.conductor.test_manager.DestroyPortTestCase.test_destroy_port -ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port ... 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_utils.TempFilesTestCase.test_tempdir -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... 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_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_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.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.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_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_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_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_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.TestNeutronNetworkActions.test_validate_port_info_neutron_interface -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_interface ... 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.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_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_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.TestUnbindPort.test_unbind_neutron_port_failure +ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ... 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_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_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.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.common.test_keystone.KeystoneTestCase.test_get_auth_fail -ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_auth_fail ... 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.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.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_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_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_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_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_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_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_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_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_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_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_neutron.TestValidateNetwork.test_by_name ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ... 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.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get ... ok -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty -ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ... ok -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail -ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_node_set_power_state_notif_get_power_fail ... ok -ironic.tests.unit.common.test_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_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.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.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure -ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_failure ... ok -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__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_neutron.TestNeutronNetworkActions.test_remove_neutron_ports -ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ... 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_node_clean_manual -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual ... 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_base_manager.StartConsolesTestCase.test__start_consoles -ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles ... 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.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_fails_on_no_enabled_interfaces -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_on_no_enabled_interfaces ... 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_kernel_ramdisk_info +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info ... ok +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface +ironic.tests.unit.common.test_driver_factory.CheckAndUpdateNodeInterfacesTestCase.test_none_network_interface ... ok +ironic.tests.unit.common.test_images.FsImageTestCase.test_get_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_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_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_policy.PolicyInCodeTestCaseNegative.test_public_api +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_public_api ... 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_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_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_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_policy.PolicyTestCase.test_authorize_passes +ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes ... 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_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_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_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_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_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_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_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_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_fsm.FSMTest.test__validate_target_state +ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ... 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_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_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_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_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_fsm.FSMTest.test_is_stable_not +ironic.tests.unit.common.test_fsm.FSMTest.test_is_stable_not ... 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_neutron.TestValidateNetwork.test_failure +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... 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_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_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_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_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_policy.PolicyInCodeTestCase.test_admin_api +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_admin_api ... 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_utils.ExecuteTestCase.test_execute_not_use_standard_locale +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_not_use_standard_locale ... ok ironic.tests.unit.common.test_neutron.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.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.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.common.test_neutron.TestValidateNetwork.test_by_uuid -ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ... 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_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_policy.PolicyInCodeTestCaseNegative.test_node_get +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_node_get ... 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_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_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_policy.PolicyInCodeTestCase.test_node_get -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get ... 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.PolicyInCodeTestCase.test_public_api -ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api ... ok -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address -ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... ok -ironic.tests.unit.conductor.test_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.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api -ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api ... 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_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.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.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_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_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file -ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__get_node_next_clean_steps ... 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_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_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.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ... 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__get_pxe_mac_path ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path ... 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.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_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_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_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs ... ok -ironic.tests.unit.conductor.test_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.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.ConsoleTestCase.test_disable_console_already_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_disable_console_already_disabled ... 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_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_neutron.TestUpdatePortAddress.test_update_port_address +ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... ok +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict ... ok +ironic.tests.unit.common.test_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_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_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_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail +ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ... ok +ironic.tests.unit.common.test_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_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_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_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_neutron.TestValidateNetwork.test_by_uuid +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_uuid ... ok +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth +ironic.tests.unit.common.test_keystone.KeystoneTestCase.test_get_service_auth ... ok +ironic.tests.unit.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_policy.PolicyInCodeTestCase.test_node_create +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_create ... 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_utils.TempFilesTestCase.test_tempdir +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... 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_wsgi_service.TestWSGIService.test_workers_set_default +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_default ... ok ironic.tests.unit.common.test_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.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.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_automated_abort -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated_abort ... 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_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_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_ipxe_timeout_config +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_timeout_config ... 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.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_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_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_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_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_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_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__generate_grub_cfg +ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ... 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_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_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_network.GetPortgroupByIdTestCase.test_portgroup_by_id +ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id ... 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_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_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_max_size_gb -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_max_size_gb ... 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_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_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_ipxe +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_root_dir_ipxe ... 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_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_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type ... ok +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_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_images.IronicImagesTestCase.test_image_to_raw +ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw ... 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.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive +ironic.tests.unit.conductor.test_base_manager.KeepAliveTestCase.test__conductor_service_record_keepalive ... ok +ironic.tests.unit.common.test_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_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_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_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_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ... ok +ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker +ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker ... ok +ironic.tests.unit.common.test_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_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_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_serialize_entity_empty_base -ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity_empty_base ... 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_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_rpc.TestUtils.test_get_versioned_notifier ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier ... 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_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_swift.SwiftTestCase.test_head_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ... 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.common.test_utils.GenericUtilsTestCase.test__get_hash_object -ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object ... 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.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_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_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.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool ... ok +ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start +ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start ... 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_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.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.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_is_hostname_safe ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe ... 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.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info -ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_kernel_ramdisk_info ... ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_ok ... 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_rpc.TestRequestContextSerializer.test_deserialize_entity +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... 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_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_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_disabled +ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled ... 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_utils.JinjaTemplatingTestCase.test_render_string +ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ... 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_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_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.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_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___init__ +ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ... ok +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting +ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting ... ok +ironic.tests.unit.common.test_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_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.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.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_swift.SwiftTestCase.test_get_temp_url +ironic.tests.unit.common.test_swift.SwiftTestCase.test_get_temp_url ... ok +ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free +ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_network_missing ... ok +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor ... 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_swift.SwiftTestCase.test_delete_object +ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... 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_neutron.TestValidateNetwork.test_duplicate +ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... ok +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure +ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_port_failure ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_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_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_policy.PolicyInCodeTestCase.test_public_api +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_public_api ... 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_policy.PolicyInCodeTestCase.test_show_password +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_show_password ... 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_policy.PolicyInCodeTestCaseNegative.test_admin_api +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_admin_api ... 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.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.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_utils.ExecuteTestCase.test_execute_get_root_helper +ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ... ok +ironic.tests.unit.common.test_utils.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_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_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_validate_network_port +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ... 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_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.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.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.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.ValidateConductorGroupTestCase.test_validate_conductor_group_success +ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_success ... 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_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__write_mac_ipxe_configs ... ok +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_exception_in_background_task ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports_delete_race ... ok +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_validate_fail ... 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_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_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_policy.PolicyInCodeTestCase.test_is_member +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_is_member ... 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.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_base_manager.StartStopTestCase.test_prevent_double_start +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start ... ok +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info +ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_clean_up_pxe_config_uefi_instance_info ... ok +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface +ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_flat_interface ... 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.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_base_manager.StartConsolesTestCase.test__start_consoles_node_locked +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_locked ... ok +ironic.tests.unit.conductor.test_base_manager.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.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_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_policy.PolicyInCodeTestCase.test_node_get +ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_node_get ... 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_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_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_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_policy.PolicyInCodeTestCaseNegative.test_show_password +ironic.tests.unit.common.test_policy.PolicyInCodeTestCaseNegative.test_show_password ... 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_node_already_locked +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_node_already_locked ... 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_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_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_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 +ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ... 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.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_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_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_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_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_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_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.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_int_type ... ok -ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_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_wsgi_service.TestWSGIService.test_workers_set_zero_setting -ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting ... ok -ironic.tests.unit.common.test_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_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.TestRequestContextSerializer.test_serialize_context +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context ... 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_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_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks +ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_share_physical_disks ... ok +ironic.tests.unit.conductor.test_manager.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_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_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_current_rpc_version -ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_rpc_version ... 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.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_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.ReleaseMappingsTestCase.test_current_object_versions +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ... 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_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.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_release_mappings.ReleaseMappingsTestCase.test_structure +ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure ... 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.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_rpc.TestRequestContextSerializer.test_deserialize_context ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... ok -ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free -ironic.tests.unit.conductor.test_base_manager.ManagerSpawnWorkerTestCase.test__spawn_worker_none_free ... ok -ironic.tests.unit.common.test_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.TestUtils.test_get_sensors_notifier_no_publisher_id ironic.tests.unit.common.test_rpc.TestUtils.test_get_sensors_notifier_no_publisher_id ... ok -ironic.tests.unit.conductor.test_manager.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.common.test_rpc.TestUtils.test_init_globals_notifications_enabled -ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled ... ok -ironic.tests.unit.conductor.test_manager.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_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.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.common.test_swift.SwiftTestCase.test_create_object -ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object ... 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.BootDeviceTestCase.test_get_supported_boot_devices +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_supported_boot_devices ... 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_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_get_root_helper -ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_get_root_helper ... 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_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.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict -ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict ... ok -ironic.tests.unit.common.test_utils.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_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.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_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.BareMetalUtilsTestCase.test_create_link +ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ... 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.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_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_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.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.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_worker_pool_full ... ok +ironic.tests.unit.common.test_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_utils.GenericUtilsTestCase.test_safe_rstrip +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... 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.TempFilesTestCase.test__check_dir_writable_ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ... 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_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_with_pass_in +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in ... 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_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_is_valid_datapath_id +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id ... 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.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked_error_on_rmtree ... 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_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_rpc.TestRequestContextSerializer.test_serialize_entity +ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... 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_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail -ironic.tests.unit.common.test_utils.ValidateConductorGroupTestCase.test_validate_conductor_group_fail ... ok -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir -ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_no_dir ... 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.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.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support -ironic.tests.unit.conductor.test_manager.DoNodeInspectAbortTestCase.test_do_inspect_abort_interface_not_support ... ok -ironic.tests.unit.common.test_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_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.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_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_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_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_manager.DestroyNodeTestCase.test_destroy_node_reserved -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_reserved ... 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_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.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_manual_clean ... ok +ironic.tests.unit.common.test_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_states.StatesTest.test_state_values_length +ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ... 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_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_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_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.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.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_file_has_content_equal_not_binary +ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary ... 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.CheckTimeoutsTestCase.test_check_rescuewait_timeouts +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ... 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_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_invalid_capabilities +ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_invalid_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_manager.ConsoleTestCase.test_get_console +ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ... 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.common.test_utils.TempFilesTestCase.test_check_dir_ok +ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_ok ... ok +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... 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_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.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.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.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.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.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_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_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector -ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ... 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_disabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_disabled ... 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.DestroyNodeTestCase.test_destroy_node_associated -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated ... 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_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.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.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_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.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_rescue_maintenance -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ... 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_enabled -ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_enabled ... 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_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.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_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.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.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.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_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.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_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.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.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_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_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.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.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.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_disable_fail +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail ... 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.CreatePortTestCase.test_create_port_node_locked +ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_node_locked ... 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_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ... 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.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.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_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.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.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed ... ok -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor -ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_registers_conductor ... ok -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged ... 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.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.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.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.ManagerPowerRecoveryTestCase.test_node_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped ... 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.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.BootDeviceTestCase.test_set_boot_device +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device ... 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.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_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.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.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.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.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.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.CreatePortTestCase.test_create_port -ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... 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.DoNodeAdoptionTestCase.test_heartbeat -ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat ... 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.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.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.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.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_power_off +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ... 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.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_base_manager.StartConsolesTestCase.test__start_consoles_failed +ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ... ok +ironic.tests.unit.conductor.test_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.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.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_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_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_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_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.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.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.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.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_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.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_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.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.DestroyNodeTestCase.test_destroy_node_associated +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_associated ... 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.BootDeviceTestCase.test_set_boot_device_node_locked +ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_set_boot_device_node_locked ... ok +ironic.tests.unit.conductor.test_manager.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.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.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_cache_bios -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__do_node_clean_manual_cache_bios ... 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.CreateNodeTestCase.test_create_node +ironic.tests.unit.conductor.test_manager.CreateNodeTestCase.test_create_node ... 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_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.DestroyPortgroupTestCase.test_destroy_portgroup +ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ... 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.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.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.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_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.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.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.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_base_manager.StartStopTestCase.test_warning_on_low_workers_pool +ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_warning_on_low_workers_pool ... ok +ironic.tests.unit.conductor.test_manager.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.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.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.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_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_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.DestroyPortTestCase.test_destroy_port +ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port ... 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.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.DestroyVolumeConnectorTestCase.test_destroy_volume_connector +ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ... 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.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full +ironic.tests.unit.conductor.test_manager.ChangeNodePowerStateTestCase.test_change_node_power_state_worker_pool_full ... ok +ironic.tests.unit.conductor.test_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.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.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.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_automated_all +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ... 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.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.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.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_deploy_timeouts +ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_deploy_timeouts ... 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.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.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_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.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.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.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.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.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.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.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.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__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.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.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.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.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.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.DestroyNodeTestCase.test_destroy_node +ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ... 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.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.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.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.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.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.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.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.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.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.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.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_disabled +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_disabled ... 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.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.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.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.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.ManagerDoSyncPowerStateTestCase.test_state_changed_sync +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ... 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.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.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.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.DoNodeRescueTestCase.test_provision_rescue_abort -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_provision_rescue_abort ... 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.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.ManagerSyncLocalStateTestCase.test_no_free_worker +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ... 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.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_locked_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_locked_on_acquire ... 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.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.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.ManagerTestProperties.test_driver_properties_ilo -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo ... 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.ManagerSyncPowerStatesTestCase.test_node_not_mapped +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped ... 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.DestroyNodeTestCase.test_destroy_node -ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ... 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.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.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.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.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.ManagerTestProperties.test_driver_properties_snmp -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp ... 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.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.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.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_timeout -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ... 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.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_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.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.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_copies_object -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object ... 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.TestIndirectionApiConductor.test_object_class_action -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ... 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.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.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.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.DestroyPortgroupTestCase.test_destroy_portgroup -ironic.tests.unit.conductor.test_manager.DestroyPortgroupTestCase.test_destroy_portgroup ... 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_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_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.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.DestroyVolumeTargetTestCase.test_destroy_volume_target +ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ... 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.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.ManagerTestProperties.test_driver_properties_fake +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake ... ok +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ... ok ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_agent_version_deprecated ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ... ok +ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test__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.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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded2 ... 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.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.ManagerPowerRecoveryTestCase.test_node_recovery_success -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ... 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.ManagerSyncLocalStateTestCase.test_node_locked +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_node_locked ... 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.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_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.ManagerSyncPowerStatesTestCase.test_single_node +ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ... ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ... ok +ironic.tests.unit.conductor.test_manager.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.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.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.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.DoNodeTakeOverTestCase.test__do_takeover +ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ... 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.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.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.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.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.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.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.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_network_validate_fail -ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_do_node_clean_network_validate_fail ... 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.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.MiscTestCase.test_iter_nodes -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ... 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.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.NmiTestCase.test_inject_nmi -ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ... 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.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.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.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.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__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_prepare_error -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_raises_prepare_error ... 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.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.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.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.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.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.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.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.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.NodeInspectHardware.test_inspect_hardware_ok -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ... 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.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_ironic_exception -ironic.tests.unit.conductor.test_manager.DoNodeDeployTestCase.test__do_node_deploy_driver_ironic_exception ... 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.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.NodeTraitsTestCase.test_add_node_traits -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ... 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.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.UpdateVolumeConnectorTestCase.test_update_volume_connector -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector ... 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.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.SensorsTestCase.test___send_sensor_data +ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ... 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.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.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.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.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.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.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.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.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.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_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.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_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_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_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.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_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.ConductorRPCAPITestCase.test_versions_in_sync -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync ... 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_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_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_rpcapi.RPCAPITestCase.test_destroy_volume_connector -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ... 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_rpcapi.RPCAPITestCase.test_do_node_clean -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... 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.RaidTestCases.test_set_target_raid_config -ironic.tests.unit.conductor.test_manager.RaidTestCases.test_set_target_raid_config ... 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_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_returns_rescuewait -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait ... 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_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_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.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate -ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate ... ok -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state ... ok -ironic.tests.unit.conductor.test_manager.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.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ... ok -ironic.tests.unit.conductor.test_manager.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.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_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.TaskManagerTestCase.test_spawn_after_link_fails -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_link_fails ... ok -ironic.tests.unit.conductor.test_manager.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.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.DoNodeRescueTestCase.test_do_node_unrescue -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_on_error_hook_exception ... ok -ironic.tests.unit.conductor.test_manager.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_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_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_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_rpcapi.ConductorRPCAPITestCase.test_version_capped -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ... 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_cleanup_cleanwait_timeout_handler_call -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call ... 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_manager.SensorsTestCase.test_send_sensor_task -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test_send_sensor_task ... 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_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_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_create_port -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... 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_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_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_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_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable ... ok -ironic.tests.unit.conductor.test_manager.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.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_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_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_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.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_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.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_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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.TestIndirectionApiConductor.test_object_backport_versions +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_backport_versions ... 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.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.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.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.UpdateNodeTestCase.test_update_node_already_associated ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ... 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_task_manager.TaskManagerTestCase.test_upgrade_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ... 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.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ... 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.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.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.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.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_locked +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ... 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.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.DoNodeRescueTestCase.test__do_node_unrescue ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify ... ok -ironic.tests.unit.conductor.test_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_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.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_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.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_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.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.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.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.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.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.DoNodeRescueTestCase.test_do_node_unrescue +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ... 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.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.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.StoreConfigDriveTestCase.test_store_configdrive_swift +ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift ... 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.TestIndirectionApiConductor.test_object_class_action +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports ... ok ironic.tests.unit.conductor.test_manager.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.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ... ok -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... 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_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.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_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_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.ManagerDoSyncPowerStateTestCase.test_get_power_state_error -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error ... 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_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success ... 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_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.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.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_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.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.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.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_good -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_create_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_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_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure ... ok -ironic.tests.unit.conductor.test_manager.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.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_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_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.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.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.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.UpdateNodeTestCase.test_update_node +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ... 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.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.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.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.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_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.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_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_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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 ... ok -ironic.tests.unit.conductor.test_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_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_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_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.NodeInspectHardware.test_inspect_hardware_return_inspecting -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_inspecting ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets ... ok -ironic.tests.unit.conductor.test_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.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_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.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.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.SensorsTestCase.test___send_sensor_data -ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ... 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.DoNodeVerifyTestCase.test__do_node_verify -ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify ... 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.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.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_abort -ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort ... 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.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.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_locked ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ... 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.VifTestCase.test_vif_attach_node_locked +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ... ok +ironic.tests.unit.conductor.test_manager.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.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.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.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_acquire_node_locked ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ... ok +ironic.tests.unit.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.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_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_continue_node_clean +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_node ... 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.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_worker_limit -ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit ... 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.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.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.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.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.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.ManagerSyncLocalStateTestCase.test_worker_limit -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... 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_rpcapi.RPCAPITestCase.test_get_driver_properties +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ... 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_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_inspect_hardware +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... 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_vif_list +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_list ... 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.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.DoProvisioningActionTestCase.test_do_provision_action_provide +ironic.tests.unit.conductor.test_manager.DoProvisioningActionTestCase.test_do_provision_action_provide ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_stable_to_stable ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ... 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_callback_stable_state +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_callback_stable_state ... 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.ManagerCheckDeployTimeoutsTestCase.test_timeout -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_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_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback ... ok +ironic.tests.unit.conductor.test_manager.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.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_max_retries_exceeded -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ... 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_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_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception ... ok +ironic.tests.unit.conductor.test_utils.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_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_utils.ErrorHandlersTestCase.test_cleaning_error_handler +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ... 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_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_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_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.DoNodeRescueTestCase.test__do_node_rescue_errors +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors ... 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_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_retry_then_success ... 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.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__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.ManagerSyncLocalStateTestCase.test_worker_limit +ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_worker_limit ... 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_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_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.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_state_changed_sync -ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ... 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.ManagerSyncLocalStateTestCase.test_no_free_worker -ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ... 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.ManagerTestProperties.test_driver_properties_fake -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fake ... 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.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_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.MiscTestCase.test_iter_nodes_shutdown +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ... 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.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_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_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_notification_utils.ProvisionNotifyTestCase.test_mask_secrets +ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ... 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_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_can_send_create_port_True +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True ... 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.ManagerTestProperties.test_driver_properties_ilo +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ilo ... 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_volume_connector +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ... 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_rpcapi.RPCAPITestCase.test_inject_nmi +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ... 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_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.DoNodeRescueTestCase.test_do_node_rescue +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ... 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_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.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.NmiTestCase.test_inject_nmi +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ... 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.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.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.NodeInspectHardware.test_inspect_hardware_raises_error +ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_raises_error ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock_refreshes_fsm ... ok +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success +ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_cleanup_ironic_exception ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ... 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_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.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_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_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_manager.ManagerSyncLocalStateTestCase.test_not_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ... 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.ManagerSyncPowerStatesTestCase.test_node_not_mapped -ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped ... 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.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.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.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.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_worker_pool_full -ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_worker_pool_full ... 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.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.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.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock -ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ... 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_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ... 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_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.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.ManagerPowerRecoveryTestCase.test_node_recovery_failed -ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_failed ... 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_replace -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_replace ... 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.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.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.NodeTraitsTestCase.test_remove_node_traits_empty -ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits_empty ... ok +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait +ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait ... 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.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.ManagerDoSyncPowerStateTestCase.test_get_power_state_error +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_get_power_state_error ... 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.MiscTestCase.test_notify_conductor_resume_deploy +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_deploy ... 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.NodeTraitsTestCase.test_remove_node_traits ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ... 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.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.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.ManagerTestProperties.test_driver_properties_fail -ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail ... 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.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.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.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.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.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.MiscTestCase.test_iter_nodes_shutdown -ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ... 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.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.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.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.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.MiscTestCase.test_iter_nodes +ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ... 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_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.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.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.ManagerDoSyncPowerStateTestCase.test_state_not_set +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_not_set ... 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.ManagerDoSyncPowerStateTestCase.test_state_unchanged +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_unchanged ... 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_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.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_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_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.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.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.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.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.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_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_manager.ManagerTestProperties.test_driver_properties_fail +ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_fail ... 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_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure ... ok +ironic.tests.unit.conductor.test_manager.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.UpdateNodeTestCase.test_associate_node_powered_off +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_off ... 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_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.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_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off ... ok +ironic.tests.unit.conductor.test_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_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits ... ok +ironic.tests.unit.conductor.test_manager.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_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout ... ok +ironic.tests.unit.conductor.test_manager.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_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_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.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.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.UpdatePortTestCase.test_update_port_physnet_maintenance +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance ... 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_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ... ok +ironic.tests.unit.conductor.test_utils.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.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_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_portgroup_active_node +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_active_node ... 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.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_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_missing +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_missing ... 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.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.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.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.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.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.StoreConfigDriveTestCase.test_store_configdrive_swift -ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive_swift ... ok -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports ... ok +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_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_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.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.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_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_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.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.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_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_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods_no_default_interface ... ok ironic.tests.unit.conductor.test_manager.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.TestIndirectionApiConductor.test_object_action -ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ... 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.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 -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.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.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.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.StoreConfigDriveTestCase.test_store_configdrive -ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive ... 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_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock +ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock ... 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.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.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.VendorPassthruTestCase.test_vendor_passthru_async +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_async ... 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.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.UpdateNodeTestCase.test_update_node -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ... 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.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_maintenance -ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance ... 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_interface_invalid -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_invalid ... ok -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked ... ok -ironic.tests.unit.conductor.test_manager.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.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.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_manager.VifTestCase.test_vif_list -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ... 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_rpcapi.RPCAPITestCase.test_can_send_create_port_False -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_False ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_create_port_True ... ok -ironic.tests.unit.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_boot_device -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ... 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_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.VendorPassthruTestCase.test_driver_vendor_passthru_sync -ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_sync ... 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_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.StoreConfigDriveTestCase.test_store_configdrive +ironic.tests.unit.conductor.test_manager.StoreConfigDriveTestCase.test_store_configdrive ... 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.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.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_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_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_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ... 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_set_target_raid_config -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config ... 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_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_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_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_rpcapi.RPCAPITestCase.test_create_node -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node ... 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_rpcapi.RPCAPITestCase.test_destroy_portgroup -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup ... ok -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed -ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ... ok -ironic.tests.unit.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_rpcapi.RPCAPITestCase.test_do_node_deploy -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... 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_task_manager.TaskManagerTestCase.test_shared_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ... 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_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_rpcapi.RPCAPITestCase.test_inject_nmi -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ... 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.ConductorRPCAPITestCase.test_version_capped +ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ... 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_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_node_vendor_passthru_methods ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_raid_logical_disk_properties ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_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_heartbeat +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ... 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_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_task_manager.TaskManagerTestCase.test_spawn_after -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ... 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_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_manager.UpdatePortgroupTestCase.test_update_portgroup_failure -ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_failure ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ... 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.ProvisionNotifyTestCase.test_notify_resource_released -ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ... 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.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.DoNodeVerifyTestCase.test__do_node_verify +ironic.tests.unit.conductor.test_manager.DoNodeVerifyTestCase.test__do_node_verify ... 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_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_validate_driver_interfaces +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_validate_driver_interfaces ... 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_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_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.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state +ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_stable_state ... ok +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_locked ... 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_spawn_after_spawn_fails ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ... 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_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_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_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_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_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_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_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.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_duplicate ... ok +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ... 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_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_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_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.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.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.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_manager.UpdatePortTestCase.test_update_port -ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ... 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.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_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_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout ... 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_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.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_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_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_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_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ... 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_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_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_clean +ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean ... 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_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.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.UpdateVolumeTargetTestCase.test_update_volume_target_uuid -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_uuid ... 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_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.NodeCleaningStepsTestCase.test__validate_user_clean_steps -ironic.tests.unit.conductor.test_utils.NodeCleaningStepsTestCase.test__validate_user_clean_steps ... 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_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__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.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits ... ok -ironic.tests.unit.conductor.test_manager.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_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_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.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_add_1 ... ok -ironic.tests.unit.conductor.test_manager.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.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.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.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock +ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ... 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_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.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.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_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on_notify ... ok -ironic.tests.unit.conductor.test_manager.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_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_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_manager.VifTestCase.test_vif_attach -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach ... 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_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot ... ok +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout +ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ... 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_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.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.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_on_object +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action_on_object ... 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_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.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_attach_node_locked -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ... 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_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_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_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_notification_utils.ProvisionNotifyTestCase.test_mask_secrets -ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ... ok -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot_timeout ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ... 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_manager.UpdatePortTestCase.test_update_port +ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ... 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_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_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.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive +ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_alive ... ok +ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported +ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ... ok +ironic.tests.unit.conductor.test_manager.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.UpdateVolumeConnectorTestCase.test_update_volume_connector +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector ... 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.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.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.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_failed_getting_state_notify ... ok +ironic.tests.unit.conductor.test_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.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.RPCAPITestCase.test_object_action -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ... 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.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.VifTestCase.test_vif_attach_validate_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ... 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_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_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.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.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.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_continue_node_deploy +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ... 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.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.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... 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_rpcapi.RPCAPITestCase.test_destroy_volume_target +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ... 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_utils.NodePowerActionTestCase.test_node_power_action_power_reboot +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_reboot ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... 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.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_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_node -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup ... ok +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed +ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync_failed ... 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_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_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_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_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.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.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_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.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_driver_vendor_passthru_async +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_async ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_portgroups_exception ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ... 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.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.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_task_manager.TaskManagerTestCase.test_spawn_after +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after ... 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_notification_utils.ProvisionNotifyTestCase.test_emit_notification +ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor ... ok +ironic.tests.unit.conductor.test_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_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_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_node_tags.DbNodeTagTestCase.test_add_node_tag +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_add_node_tag ... 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_task_manager.TaskManagerTestCase.test_upgrade_lock +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ... 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_manager.NmiTestCase.test_inject_nmi_validate_invalid_param +ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param ... ok +ironic.tests.unit.conductor.test_utils.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.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_rpcapi.RPCAPITestCase.test_driver_vendor_passthru +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ... 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.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.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler_set_failed_state_false ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_boot_device ... 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.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.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.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_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found +ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits_node_not_found ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist ... 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_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_rpcapi.RPCAPITestCase.test_vendor_passthru -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist ... ok ironic.tests.unit.conductor.test_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.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_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off -ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_soft_power_off ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_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_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_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.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_rpcapi.RPCAPITestCase.test_update_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... 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_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_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.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.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state ... ok +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released +ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ... 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.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_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_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.UpdateVolumeTargetTestCase.test_update_volume_target -ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ... 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_notification_utils.ProvisionNotifyTestCase.test_emit_notification -ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_emit_notification ... 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_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_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_ports_exception ... ok -ironic.tests.unit.conductor.test_utils.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_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_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_task_manager.TaskManagerTestCase.test_excl_lock +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ... 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_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_reserve_exception ... ok +ironic.tests.unit.conductor.test_manager.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_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_rpcapi.ConductorRPCAPITestCase.test_version_cap -ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ... ok -ironic.tests.unit.conductor.test_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_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_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_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.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock -ironic.tests.unit.db.sqlalchemy.test_api.TestDBWriteMethodsRetryOnDeadlock.test_retry_on_deadlock ... ok -ironic.tests.unit.conductor.test_manager.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_rpcapi.RPCAPITestCase.test_destroy_volume_target -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ... 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.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad ... ok -ironic.tests.unit.conductor.test_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_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_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler -ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ... 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_rpcapi.RPCAPITestCase.test_get_console_information -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... 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_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_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_teardown ... ok -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ... 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_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.NodeDeployStepsTestCase.test__get_deployment_steps -ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps ... 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_utils.NodePowerActionTestCase.test__calculate_target_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__calculate_target_state ... 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_class_action_versions -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_class_action_versions ... 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_rpcapi.RPCAPITestCase.test_update_volume_connector -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_connector ... 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_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.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_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_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits -ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits ... ok -ironic.tests.unit.conductor.test_manager.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_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_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_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_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.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.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.db.test_api.UpgradingTestCase.test_check_versions -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... 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.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ... ok -ironic.tests.unit.conductor.test_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.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_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_manager.VifTestCase.test_vif_attach_validate_error -ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list ... ok -ironic.tests.unit.conductor.test_utils.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_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_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.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.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__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_manager.VifTestCase.test_vif_detach +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ... 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_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_task_manager.TaskManagerTestCase.test_shared_lock +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock ... 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.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.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ... ok -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_properties ... 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.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware -ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... ok -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_portgroup ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... ok +ironic.tests.unit.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_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_update_port ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ... ok -ironic.tests.unit.conductor.test_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.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_vif_attach ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ... 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.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_rpcapi.RPCAPITestCase.test_vif_detach ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ... 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.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found ... ok -ironic.tests.unit.conductor.test_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.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.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_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_reboot_storage_attach -ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach ... ok -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock -ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_name ... 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_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.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.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_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_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.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.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.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.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.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.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.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.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail -ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_no_fail ... 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.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception ... ok +ironic.tests.unit.conductor.test_task_manager.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_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_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_cleanwait_timeout +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout ... 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.db.test_api.UpgradingTestCase.test_check_versions_conductor_old +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ... ok +ironic.tests.unit.conductor.test_utils.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.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_cleanwait_timeout_handler_call ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ... 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.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.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_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.ErrorHandlersTestCase.test_rescuing_error_handler ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ... 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.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.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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_of_reserved_node_fails ... ok ironic.tests.unit.conductor.test_utils.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.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.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.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.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.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.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.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test__can_skip_state_change_different_state ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor_not_found ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets ... ok +ironic.tests.unit.conductor.test_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.db.test_conductor.DbConductorTestCase.test_unregister_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ... 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.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_tags.DbNodeTagTestCase.test_node_tag_exists +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists ... 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.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_node_tags.DbNodeTagTestCase.test_node_tag_not_exists +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_not_exists ... ok +ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps +ironic.tests.unit.conductor.test_utils.NodeDeployStepsTestCase.test__get_deployment_steps ... 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_nodes.DbNodeTestCase.test_get_node_by_id +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id ... 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.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.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_no_instance_traits +ironic.tests.unit.conductor.test_utils.ValidateInstanceInfoTraitsTestCase.test_validate_instance_info_traits_no_instance_traits ... ok +ironic.tests.unit.conductor.test_manager.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.TestIndirectionApiConductor.test_object_action +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ... 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.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_manager.TestIndirectionApiConductor.test_object_action_copies_object +ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object ... 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.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.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ... ok +ironic.tests.unit.conductor.test_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_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.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.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_touch_node_provisioning_not_found ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning_not_found ... 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_2_port_portgroup_w_physnet_update_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_1 ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ... 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.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported -ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ... 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.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_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_instance_already_associated ... 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.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_nodes.DbNodeTestCase.test_update_node_name_duplicate +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_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.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot +ironic.tests.unit.conductor.test_utils.NodeSoftPowerActionTestCase.test_node_power_action_power_soft_reboot ... ok +ironic.tests.unit.conductor.test_manager.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.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_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name_that_does_not_exist ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid +ironic.tests.unit.conductor.test_manager.UpdateVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted ... 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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted ... ok +ironic.tests.unit.conductor.test_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.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.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_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_api.UpgradingTestCase.test_check_versions_conductor +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ... 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.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.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_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_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ... ok ironic.tests.unit.conductor.test_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.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_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_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_volume_type ... ok +ironic.tests.unit.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_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.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_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.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp ... 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.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ... ok +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification +ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification ... ok +ironic.tests.unit.db.test_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.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_nodes.DbNodeTestCase.test_reservation_after_release +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release ... 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.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... 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.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_backport_versions ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ... 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_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_nodes.DbNodeTestCase.test_reservation_non_existent_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_non_existent_node ... 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.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_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_portgroup ... 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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_3 ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ... 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.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_node_not_exist ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ... 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.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... 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.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.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode ... ok +ironic.tests.unit.conductor.test_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.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list ... ok +ironic.tests.unit.conductor.test_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_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.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ... ok -ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid -ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_valid ... 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_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ... 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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist ... ok -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null -ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_w_physnet_update_2 ... ok -ironic.tests.unit.db.test_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.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.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found ... ok -ironic.tests.unit.conductor.test_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.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ... ok +ironic.tests.unit.conductor.test_task_manager.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.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.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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_name ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_volconn_exception ... 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_conductor.DbConductorTestCase.test_get_offline_conductors +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ... 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_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.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.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.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ... ok +ironic.tests.unit.db.test_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_register_conductor_hardware_interfaces_duplicate +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ... 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.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.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_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist ... ok -ironic.tests.unit.conductor.test_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.test_chassis.DbChassisTestCase.test_destroy_chassis -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ... 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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list_sorted ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_2_port_portgroup_no_physnet_update_2 ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id_that_does_not_exist ... ok -ironic.tests.unit.db.test_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.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_none_dhcp ... ok -ironic.tests.unit.conductor.test_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.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.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address ... ok -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_update_1 ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces ... ok +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_some_failures ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_cleaning_error_handler_other_error ... ok +ironic.tests.unit.db.test_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_node_traits.DbNodeTraitTestCase.test_delete_node_trait +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found ... ok +ironic.tests.unit.conductor.test_utils.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.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_node_trait_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ... ok -ironic.tests.unit.conductor.test_utils.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.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.conf.test_auth.AuthConfTestCase.test_add_auth_opts -ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts ... ok -ironic.tests.unit.conductor.test_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.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.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ... 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_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_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ... ok +ironic.tests.unit.conductor.test_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_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.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_release_reservation +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... 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.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_get_properties +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... ok +ironic.tests.unit.conductor.test_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_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.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.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.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_get_portgroup_by_address +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address ... 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.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.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_with_exception ... ok -ironic.tests.unit.conductor.test_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.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.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.db.test_ports.DbPortTestCase.test_get_port_by_id +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id ... ok +ironic.tests.unit.drivers.modules.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.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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 -ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_w_physnet_update_1 ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id_that_does_not_exist ... ok +ironic.tests.unit.conductor.test_utils.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.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_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id ... ok +ironic.tests.unit.drivers.modules.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.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.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.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.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list ... ok +ironic.tests.unit.drivers.modules.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.dhcp.test_factory.TestDHCPFactory.test_default_dhcp +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ... ok +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error +ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_inconsistent_physnets_fix ... ok +ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleTestCase.test_cimc_handle +ironic.tests.unit.drivers.modules.cimc.test_common.CIMCHandleTestCase.test_cimc_handle ... 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.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.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_allowed_state ... ok +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ... 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.db.sqlalchemy.test_models.TestGetClass.test_get_class +ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... ok +ironic.tests.unit.drivers.modules.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.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.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_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ... ok +ironic.tests.unit.conductor.test_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.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.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts ... ok +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ... ok +ironic.tests.unit.conductor.test_manager.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.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.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_chassis.DbChassisTestCase.test_update_chassis +ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis ... 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.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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ... 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.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.db.test_nodes.DbNodeTestCase.test_create_node_with_tags -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_tags ... ok +ironic.tests.unit.drivers.modules.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.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_list_hardware_type_interfaces ... ok +ironic.tests.unit.drivers.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.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty ... ok +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path ... ok +ironic.tests.unit.db.test_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_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_conductor.DbConductorTestCase.test_touch_conductor_deadlock +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_deadlock ... 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.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found ... ok +ironic.tests.unit.drivers.modules.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.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_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit ... ok +ironic.tests.unit.db.test_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.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_id ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node ... 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.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.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.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.db.test_nodes.DbNodeTestCase.test_get_node_list -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ... ok -ironic.tests.unit.drivers.modules.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.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.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.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.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.TestWalkVersions.test_migrate_up_with_data -ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up_with_data ... 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.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.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_nodes.DbNodeTestCase.test_release_non_existent_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_existent_node ... ok -ironic.tests.unit.db.test_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_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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht ... ok -ironic.tests.unit.drivers.modules.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.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_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_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_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_portgroups.DbportgroupTestCase.test_update_portgroup -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... 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.db.test_ports.DbPortTestCase.test_get_port_by_id -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_id ... ok -ironic.tests.unit.db.test_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_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 -"max-count" must be a positive 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.db.test_nodes.DbNodeTestCase.test_reserve_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... 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.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_update_node_with_tags +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags ... ok 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.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.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.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_default_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_default_dhcp ... 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.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.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.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_host ... ok -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_port ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup ... ok -ironic.tests.unit.drivers.modules.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.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__get_next_persistent_boot_mode -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode ... 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.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.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_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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake ... ok -ironic.tests.unit.drivers.modules.drac.test_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.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.DracManageVirtualDisksTestCase.test_delete_virtual_disk -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_delete_virtual_disk ... 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.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.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_api.UpgradingTestCase.test_check_versions_emptyDB -ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB ... 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_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.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.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_node_not_exist ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_with_nodes ... 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.db.test_conductor.DbConductorTestCase.test_touch_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ... ok -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_get_properties ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found ... ok -ironic.tests.unit.drivers.modules.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.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_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist ... ok -ironic.tests.unit.drivers.modules.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.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.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_exists ... ok +ironic.tests.unit.drivers.modules.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.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id ... ok +ironic.tests.unit.drivers.modules.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.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_create_port_duplicated_uuid +ironic.tests.unit.db.test_ports.DbPortTestCase.test_create_port_duplicated_uuid ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_that_does_not_exist ... ok +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_get_boot_device ... ok Error while running foo: bar. 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.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_update_node_associate_and_disassociate +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate ... ok ironic.tests.unit.drivers.modules.drac.test_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.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.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_duplicate ... ok -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.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.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits ... ok -ironic.tests.unit.drivers.modules.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.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist ... ok -ironic.tests.unit.drivers.modules.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.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.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_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_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_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_fail -ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_list_unfinished_jobs_fail ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate_at_limit ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.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_update_node_name_duplicate -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_name_duplicate ... 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_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_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_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist ... ok +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue ... ok ironic.tests.unit.db.test_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_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_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id ... ok +ironic.tests.unit.drivers.modules.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.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.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.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_instance_already_associated ... ok -ironic.tests.unit.drivers.modules.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.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_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list_chassis_not_found ... ok -ironic.tests.unit.drivers.modules.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.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.db.test_ports.DbPortTestCase.test_destroy_port -ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_that_does_not_exist ... ok -ironic.tests.unit.drivers.modules.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 +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.db.test_ports.DbPortTestCase.test_update_port ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node ... ok -ironic.tests.unit.drivers.modules.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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id ... ok -ironic.tests.unit.drivers.modules.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.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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_uuid ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__parse_deploy_info ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id ... ok +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state +ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_to_node_in_manageable_state ... ok +ironic.tests.unit.drivers.modules.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_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.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.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.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.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.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.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_get_properties -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_that_does_not_exist ... ok -ironic.tests.unit.drivers.modules.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.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.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.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.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_port_by_address -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_address ... 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.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.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.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.db.test_ports.DbPortTestCase.test_update_port_duplicated_address -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address ... ok -ironic.tests.unit.drivers.modules.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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ... ok -ironic.tests.unit.drivers.modules.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.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.cimc.test_power.PowerTestCase.test_reboot_on +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_by_uuid ... ok +ironic.tests.unit.drivers.modules.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_inspect.DracInspectionTestCase.test__guess_root_disk +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__guess_root_disk ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ... ok +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connector_list ... ok +ironic.tests.unit.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_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.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.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_continue_deploy ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_duplicated_type_connector_id ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks ... ok -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id -ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id ... ok -ironic.tests.unit.drivers.modules.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.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_uuid ... ok -ironic.tests.unit.drivers.modules.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.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.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_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_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.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.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_inspect.DracInspectionTestCase.test_inspect_hardware_fail +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_fail ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id ... ok +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found +ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_not_found ... ok +ironic.tests.unit.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__find_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__find_configuration ... 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__get_fixed_ip_address +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_fixed_ip_address ... 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_raid.DracManageVirtualDisksTestCase.test_commit_config +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config ... 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_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.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__get_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device ... 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.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_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.TestAnsibleMethods.test__get_configdrive_path -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_configdrive_path ... 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.ansible.test_deploy.TestAnsibleDeploy.test_clean_up -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.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.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.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step ... 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.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.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.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_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.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.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.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.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.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.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_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.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.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_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_sets_parsed_url_attrib_of_fw_processor ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_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.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.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.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.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.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__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_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.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.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_cleaning ... 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,)) +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.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.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.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.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_raid.DracRaidInterfaceTestCase.test_create_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration ... 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.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.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 ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info ... 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.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_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.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_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_missing_path -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_path ... 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_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_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_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_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.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target ... ok -ironic.tests.unit.drivers.modules.drac.test_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_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.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.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_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_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.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_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.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_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_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.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_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.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.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.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_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.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.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_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__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_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_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.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_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.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.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_web_server ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_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_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.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.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_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.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.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.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_gpu_ids_input -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_gpu_ids_input ... ok -ironic.tests.unit.drivers.modules.drac.test_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.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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_no_default_interface ... ok +ironic.tests.unit.drivers.modules.drac.test_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.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_no_vif_data ... ok ironic.tests.unit.drivers.modules.drac.test_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.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail -ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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.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.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_multiple_params ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_username ... 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.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_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.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_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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_processor_ctor_throws_exception_with_invalid_firmware_url ... ok -ironic.tests.unit.drivers.modules.irmc.test_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.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_sum_with_component -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_sum_with_component ... ok -ironic.tests.unit.drivers.modules.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_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.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.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_deploy +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ... 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_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.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.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_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.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_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk +ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk ... ok +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_node_already_locked ... ok +ironic.tests.unit.drivers.modules.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.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_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_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_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.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.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_get_logical_disks ... ok +ironic.tests.unit.drivers.modules.drac.test_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.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.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_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.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_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.DracQueryRaidConfigurationTestCase.test_list_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks ... 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.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.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.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test_prepare_node_for_deploy_inst_info ... ok -ironic.tests.unit.drivers.modules.network.test_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.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_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.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.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_raid_controllers +ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers ... 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.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__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_validate +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ... 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.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_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_multiple_controllers ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_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.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.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.IloPXEBootTestCase.test_prepare_instance_bios +ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance_bios ... 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.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method +ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_unsupported_method ... ok +ironic.tests.unit.drivers.modules.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.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.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.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.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error ... ok +ironic.tests.unit.drivers.modules.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.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.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config ... ok +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list +ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ... ok ironic.tests.unit.drivers.modules.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_management.IloManagementTestCase.test_get_boot_device_persistent_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent_fail ... ok -ironic.tests.unit.drivers.modules.network.test_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.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_management.IloManagementTestCase.test_reset_ilo -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo ... 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.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_out_range_auth_method ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.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_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_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.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.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.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_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.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.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_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.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.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 ... ok -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok -ironic.tests.unit.drivers.modules.irmc.test_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.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_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_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.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... ok -ironic.tests.unit.drivers.modules.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.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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_standalone_ports ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_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_get_ilo_object_cafile -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_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_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.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.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.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__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_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_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.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.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_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_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_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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.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.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_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.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.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.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.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.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__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.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_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.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_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_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.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.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.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.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.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.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_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.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_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_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.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.TestVifPortIDMixin.test_vif_list_extra -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_extra ... 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.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__clear_vif_from_port_like_obj_in_extra_port -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_extra_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_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.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.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.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_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.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.ilo.test_power.IloPowerTestCase.test_reboot -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot ... 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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_no_ports_for_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_timeout -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_timeout ... 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 -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.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.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.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_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_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_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_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_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.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_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_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.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.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.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.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.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_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_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.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_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.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_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.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.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.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.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.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.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.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__verify_node_info_fails -ironic.tests.unit.drivers.modules.oneview.test_common.OneViewCommonTestCase.test__verify_node_info_fails ... 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.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.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.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_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_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_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_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_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.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.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_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__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_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.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.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.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.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.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.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.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.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_props_gpu_cpu_fpgas_zero_and_existing_cap ... ok -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail ... 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.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.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_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.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_deploy.OneViewAgentDeployTestCase.test_validate -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_validate ... 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.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_deploy.OneViewIscsiDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_deploy ... 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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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_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.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_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.oneview.test_management.OneViewManagementDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate ... 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.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.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.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.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.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.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning -ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_provisioning ... 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.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.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.network.test_flat.TestFlatInterface.test_validate -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate ... 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.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.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.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.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.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_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_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.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.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_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.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.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.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.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.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.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.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.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.sqlalchemy.test_models.TestGetClass.test_get_class -ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... 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.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.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.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.cimc.test_management.CIMCManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_validate ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_node ... ok +ironic.tests.unit.drivers.modules.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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... 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.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.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_rpcapi.RPCAPITestCase.test_do_node_tear_down +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_tear_down ... 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.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.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_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.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.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad +ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad ... ok +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_boot_devices ... 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.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.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_serialized_instance_has_uuid +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_serialized_instance_has_uuid ... 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.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.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.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.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.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.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_cleaning_network ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list ... ok -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list ... ok -ironic.tests.unit.drivers.modules.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.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final ... 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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht ... ok -ironic.tests.unit.drivers.modules.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.network.test_noop.NoopInterfaceTestCase.test_get_current_vif -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_current_vif ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ... 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.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_register_conductor_hardware_interfaces_duplicate -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ... 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.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor_hardware_interfaces ... ok -ironic.tests.unit.drivers.modules.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.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.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.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_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_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_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_setting_not_exist ... ok -ironic.tests.unit.drivers.modules.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.oneview.test_deploy.OneViewIscsiDeployTestCase.test_validate -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_validate ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists ... ok -ironic.tests.unit.drivers.modules.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.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_list ... ok -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_empty_node_traits ... ok -ironic.tests.unit.drivers.modules.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.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.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config +ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_target_raid_config ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_not_persistent ... ok +ironic.tests.unit.conductor.test_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.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.db.test_api.GetNotVersionsTestCase.test_get_not_versions +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ... ok +ironic.tests.unit.drivers.modules.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.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.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.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.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.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_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_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_with_old_conductor ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ... 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.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid ... ok -ironic.tests.unit.drivers.modules.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.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_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_nodes.DbNodeTestCase.test_get_node_by_uuid -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ... ok -ironic.tests.unit.drivers.modules.test_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.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_validate_fail_exception -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail_exception ... 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_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_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags ... ok -ironic.tests.unit.drivers.modules.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.db.test_nodes.DbNodeTestCase.test_reservation_after_release -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_after_release ... ok -ironic.tests.unit.drivers.modules.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.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_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_node_not_exist ... ok -ironic.tests.unit.drivers.modules.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.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.drivers.modules.test_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.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.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_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_create_node_name_duplicate -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_name_duplicate ... 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.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_create_node_with_traits -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ... ok -ironic.tests.unit.drivers.modules.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.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_nodes.DbNodeTestCase.test_get_node_by_port_addresses -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses ... ok -ironic.tests.unit.drivers.modules.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.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_nodes.DbNodeTestCase.test_update_node_inspection_started_at -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at ... ok -ironic.tests.unit.drivers.modules.redfish.test_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.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.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.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_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_update_node_not_found -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_by_id ... ok -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate ... 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.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.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_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty ... ok -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_dhcp_some_error ... ok -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp -ironic.tests.unit.dhcp.test_factory.TestDHCPFactory.test_set_bad_dhcp ... ok -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id ... ok -ironic.tests.unit.drivers.modules.test_agent.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.redfish.test_management.RedfishManagementTestCase.test_loading_error -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ... 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_ports.DbPortTestCase.test_get_port_by_uuid -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid ... 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.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.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.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.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.dhcp.test_neutron.TestNeutron.test_get_ip_addresses -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ... ok -ironic.tests.unit.drivers.modules.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.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ... 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.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_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_get_properties -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ... ok -ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base -ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults ... ok -ironic.tests.unit.drivers.modules.test_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.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp ... 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.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__validate_clean_steps -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps ... 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.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning ... 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_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.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy_iwdi ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_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.TestAgentDeploy.test_validate -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.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.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.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.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.cimc.test_management.CIMCManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.cimc.test_management.CIMCManagementTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning ... ok -ironic.tests.unit.drivers.modules.test_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.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_no_playbook ... ok -ironic.tests.unit.drivers.modules.test_agent_base_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.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_on_timeout -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_reboot_on_timeout ... 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.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.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_cleanup_vmedia_boot +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot ... 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.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__disable_secure_boot_true ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_no_change ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... ok +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_init_prepares_fsm ... 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.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.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.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.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.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_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.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_abandon_config ... ok -ironic.tests.unit.drivers.modules.test_agent_base_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.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password -ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info_missing_password ... ok -ironic.tests.unit.drivers.modules.test_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_finalize_rescue -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue ... 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.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_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_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.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.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.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.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.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_power.DracPowerTestCase.test_get_properties -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties ... 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_make_persistent_password_file -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file ... 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.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.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_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 -ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_7_disk_and_raid_level_10 ... ok -ironic.tests.unit.drivers.modules.test_agent_base_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_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.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.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.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_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.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_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.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.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.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.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded +ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_exception_while_yielded ... ok ironic.tests.unit.drivers.modules.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_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.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__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.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.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.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.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_raid_controllers ... ok -ironic.tests.unit.drivers.modules.test_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_client.TestAgentClient.test__command -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command ... 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.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_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json ... 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.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_prepare_image -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_https_url ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_shellinabox_console_url ... ok -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info -ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device_from_driver_internal_info ... ok -ironic.tests.unit.drivers.modules.test_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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space -ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid ... ok -ironic.tests.unit.drivers.modules.drac.test_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_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.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.drac.test_management.DracManagementTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.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.OtherFunctionTestCase.test_set_failed_state -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state ... 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.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.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_exc ... ok -ironic.tests.unit.drivers.modules.drac.test_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_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.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.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.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.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.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_collect_deploy_logs ... ok -ironic.tests.unit.drivers.modules.drac.test_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_commit_config -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false -ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning_manage_boot_false ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_node_tags ... 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.drac.test_job.DracJobTestCase.test_get_job +ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_get_job ... ok +ironic.tests.unit.conductor.test_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_shared_lock +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ... 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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait ... ok +ironic.tests.unit.drivers.modules.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.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ... ok +ironic.tests.unit.drivers.modules.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.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy +ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy ... ok +ironic.tests.unit.drivers.modules.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.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device ... ok +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual +ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_node_not_found ... ok +ironic.tests.unit.drivers.modules.drac.test_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_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.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.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.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot -ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_with_reboot ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property ... ok +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties ... 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.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id ... ok +ironic.tests.unit.drivers.modules.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.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_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.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.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.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.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.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.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.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.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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_common.IloCommonMethodsTestCase.test_attach_vmedia_fails +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia_fails ... 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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state +ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state ... ok ironic.tests.unit.drivers.modules.drac.test_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_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.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.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks ... ok -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail -ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_physical_disks_fail ... ok -ironic.tests.unit.drivers.modules.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.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_true ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test__configure_vmedia_boot_with_boot_iso ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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.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.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.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_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.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.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_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_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.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.db.test_nodes.DbNodeTestCase.test_create_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ... 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.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.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_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.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_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_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_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails ... ok +ironic.tests.unit.conductor.test_utils.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.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_uuid ... ok +ironic.tests.unit.drivers.modules.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.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.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_with_sharing_disabled ... ok -ironic.tests.unit.drivers.modules.test_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_trusted_boot_capability -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_trusted_boot_capability ... 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.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_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_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_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_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_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_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_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_force_iscsi_lun_update -ironic.tests.unit.drivers.modules.test_deploy_utils.PhysicalWorkTestCase.test_force_iscsi_lun_update ... 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.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.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.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_pxe_config_whole_disk_image -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_pxe_config_whole_disk_image ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_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_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.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.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_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.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 -ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot ... 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_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.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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.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.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.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.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.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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.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.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.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.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_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.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.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list ... ok -ironic.tests.unit.drivers.modules.test_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_inspector.CheckStatusTestCase.test_not_inspector -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ... 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.GetClientTestCase.test__get_client_standalone -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone ... 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.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_inspector.InspectHardwareAbortTestCase.test_abort_error -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ... 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.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_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_for_boot_with_parameters ... ok -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ... 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.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.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ... ok +ironic.tests.unit.drivers.modules.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_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_creates_temp_url ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config_fail ... ok +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting +ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_adopting ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_provision ... ok +ironic.tests.unit.drivers.modules.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.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.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.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok ironic.tests.unit.drivers.modules.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.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.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.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_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_address ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.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.IPMIToolDriverTestCase.test__bmc_reset_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ... ok +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check +ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedList_type_check ... ok +ironic.tests.unit.drivers.modules.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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 ... ok +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model +ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_no_model ... ok +ironic.tests.unit.drivers.modules.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_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.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.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.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_2 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_2 ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_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.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_common.IloCommonMethodsTestCase.test__prepare_floppy_image -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test__prepare_floppy_image ... ok -ironic.tests.unit.drivers.modules.test_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.IPMIToolDriverTestCase.test_get_power_state -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_common.IloCommonMethodsTestCase.test_attach_vmedia -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_attach_vmedia ... ok +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 +ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_update_1 ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_no_change ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_tags_get_destroyed_after_destroying_a_node_by_uuid ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_uuid ... ok +ironic.tests.unit.drivers.modules.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_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_capabilities_exist_ok ... ok +ironic.tests.unit.conductor.test_utils.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.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.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_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.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.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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ... ok ironic.tests.unit.drivers.modules.ilo.test_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_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 -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_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_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.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_inject_nmi_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ... 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_get_boot_device_persistent -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_get_boot_device_persistent ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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_inspect.TestInspectPrivateMethods.test__validate_ok -ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.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.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_common.IloCommonMethodsTestCase.test_copy_image_to_swift ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_swift ... ok +ironic.tests.unit.conductor.test_utils.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.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_inspect.IloInspectTestCase.test_inspect_essential_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok ... 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.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.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_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_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_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.db.test_api.UpgradingTestCase.test_check_versions +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size ... ok +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id ... ok +ironic.tests.unit.drivers.modules.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.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_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_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.db.test_ports.DbPortTestCase.test_update_port_uuid +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.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.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.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_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.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.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.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.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.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check -ironic.tests.unit.db.sqlalchemy.test_types.SqlAlchemyCustomTypesTestCase.test_JSONEncodedDict_type_check ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.IPMIToolDriverTestCase.test_reboot_fail_power_on -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on ... ok -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist -ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_setting_not_exist ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid +ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_uuid ... ok +ironic.tests.unit.drivers.modules.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_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.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks ... ok +ironic.tests.unit.db.test_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_api.UpgradingTestCase.test_check_versions_emptyDB +ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_emptyDB ... ok +ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base +ironic.tests.unit.dhcp.test_factory.CompareBasetoModules.test_drivers_match_dhcp_base ... ok +ironic.tests.unit.drivers.modules.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_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.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.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_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.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.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.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist ... ok +ironic.tests.unit.drivers.modules.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.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list +ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.dhcp.test_neutron.TestNeutron.test_get_ip_addresses +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ... ok ironic.tests.unit.drivers.modules.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_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.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.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.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass ... ok -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_create_chassis_already_exists ... ok -ironic.tests.unit.drivers.modules.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.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.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_update_chassis -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis ... 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.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_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_legacy ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ... 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_bios.IloBiosTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor_not_found ... ok +ironic.tests.unit.drivers.modules.ilo.test_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_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_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_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.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.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_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.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc_resource_not_found ... ok +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist ... ok +ironic.tests.unit.drivers.modules.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_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.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.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.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits ... ok +ironic.tests.unit.drivers.modules.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_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_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_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_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.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit ... ok +ironic.tests.unit.drivers.modules.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.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.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.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance_wrong_uuid ... ok +ironic.tests.unit.drivers.modules.ilo.test_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_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_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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_get_node_list +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_list ... ok +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_invalid_state ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image +ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_whole_disk_image ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_with_cols ... ok +ironic.tests.unit.drivers.modules.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.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.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.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.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid ... ok +ironic.tests.unit.drivers.modules.ilo.test_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_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_bios.DracBIOSConfigurationTestCase.test_get_config +ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_get_config ... ok +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_non_locked_node ... ok +ironic.tests.unit.drivers.modules.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_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.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_image_from_swift ... ok +ironic.tests.unit.drivers.modules.drac.test_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_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.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_started_at ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_update_node_uuid +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ... 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_migrations.TestWalkVersions.test_walk_versions_all_default +ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_walk_versions_all_default ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.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_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.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.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.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_nodes.DbNodeTestCase.test_update_node_with_traits +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_essential_ok_local_gb_zero ... ok +ironic.tests.unit.drivers.modules.ilo.test_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_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.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ... 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.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.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.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.drac.test_power.DracPowerTestCase.test_get_properties +ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_get_properties ... 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_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_not_empty ... 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_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.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.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.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.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_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_10 ... ok +ironic.tests.unit.drivers.modules.irmc.test_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.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_reservations_for_conductor ... ok +ironic.tests.unit.drivers.modules.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.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_5 ... ok +ironic.tests.unit.drivers.modules.drac.test_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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.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.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_raid_50 ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config +ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo ... ok +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version +ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.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.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.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.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_clear_node_target_power_state ... ok -ironic.tests.unit.drivers.modules.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.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht_groups ... ok -ironic.tests.unit.drivers.modules.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.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ... ok -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces ... 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.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.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.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_console.IloConsoleInterfaceTestCase.test_validate_exc -ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ... 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_node_not_exist -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags_node_not_exist ... ok -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image -ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_calls_process_firmware_image ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes ... 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.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_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.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_two_calls_to_diff_address ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_missing_boot_iso_href ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__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.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.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.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_update_ipmi_properties ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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_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.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.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.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.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_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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_webserver ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_many_host_many_ht ... ok +ironic.tests.unit.drivers.modules.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_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.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.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session ... ok -ironic.tests.unit.drivers.modules.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.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.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.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht ... ok +ironic.tests.unit.drivers.modules.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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__remove_webserver_based_me ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ... ok +ironic.tests.unit.drivers.modules.irmc.test_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.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_no_ht ... ok +ironic.tests.unit.drivers.modules.drac.test_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.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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist ... ok +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht +ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_one_ht ... ok +ironic.tests.unit.drivers.modules.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.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_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.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_portgroups.DbportgroupTestCase.test_get_portgroup_list +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list ... 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.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found +ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_node_not_found ... ok ironic.tests.unit.drivers.modules.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.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_invalid_port ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress ... ok -ironic.tests.unit.drivers.modules.irmc.test_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.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_get_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ... 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.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_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ... 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.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.IPMIToolSocatDriverTestCase.test__start_console_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console ... 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.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.ISCSIDeployTestCase.test_execute_clean_step -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_execute_clean_step ... ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok -ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_on_ok ... ok -ironic.tests.unit.drivers.modules.network.test_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.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_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist ... ok +ironic.tests.unit.drivers.modules.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.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found ... ok +ironic.tests.unit.drivers.modules.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.db.test_portgroups.DbportgroupTestCase.test_update_portgroup +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... 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.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_node_not_exist ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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.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.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_no_matching_physnets ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_tear_down_cleaning ... 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.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.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached ... ok -ironic.tests.unit.drivers.modules.test_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.db.test_nodes.DbNodeTestCase.test_create_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port ... ok -ironic.tests.unit.drivers.modules.test_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.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_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_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.db.test_ports.DbPortTestCase.test_destroy_port +ironic.tests.unit.db.test_ports.DbPortTestCase.test_destroy_port ... ok +ironic.tests.unit.drivers.modules.irmc.test_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.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.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_exists ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.db.test_ports.DbPortTestCase.test_update_port_duplicated_address +ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_duplicated_address ... ok +ironic.tests.unit.drivers.modules.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.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.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.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_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_node_trait_not_exists ... ok +ironic.tests.unit.drivers.modules.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.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate +ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted ... ok +ironic.tests.unit.drivers.modules.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.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.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.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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ... ok -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default -ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_option_default ... 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.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.db.test_nodes.DbNodeTestCase.test_destroy_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node ... 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.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_reservation_in_exception_message -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reservation_in_exception_message ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_with_power_off ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_netboot_iscsi ... ok -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_tags ... ok -ironic.tests.unit.drivers.modules.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.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.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ... 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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.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.db.test_nodes.DbNodeTestCase.test_create_node_with_traits +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node_with_traits ... ok +ironic.tests.unit.drivers.modules.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_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.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.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_destroy_node_that_does_not_exist ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.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.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses_for_port_and_portgroup ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_throws_error_if_checksum_validation_fails ... ok ironic.tests.unit.drivers.modules.irmc.test_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.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.db.test_ports.DbPortTestCase.test_update_port_uuid -ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target ... ok -ironic.tests.unit.drivers.modules.test_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.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_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.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.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.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.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.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_for_portgroup_with_exception ... ok -ironic.tests.unit.drivers.modules.test_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.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image -ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_should_write_image ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info -ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_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.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.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.test_agent.AgentRAIDTestCase.test_create_configuration -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration ... 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__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.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.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.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.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__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_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__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.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_portgroup_no_address -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_no_address ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare ... ok -ironic.tests.unit.drivers.modules.test_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_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.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.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_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.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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ... ok +ironic.tests.unit.drivers.modules.irmc.test_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.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.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses ... ok +ironic.tests.unit.drivers.modules.ilo.test_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_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.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_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.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.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.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_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_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.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.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced ... ok -ironic.tests.unit.drivers.modules.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.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_default_verbosity_nodebug ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_active ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_deleting_node ... ok -ironic.tests.unit.drivers.modules.test_agent.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_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.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.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_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.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup ... 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.test_agent.TestAgentDeploy.test_tear_down -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ... 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_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.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.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.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.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_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.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.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.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_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.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware -ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate_interface_mismatch ... 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.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.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.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.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.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_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_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.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.network.test_flat.TestFlatInterface.test_vif_port_changed -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.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.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_failed_job ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err ... 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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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_snmp.SNMPDeviceDriverTestCase.test_aten_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_on ... 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_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.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.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_on ... ok -ironic.tests.unit.drivers.modules.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_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_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_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.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.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.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_configure_tenant_networks ... ok -ironic.tests.unit.drivers.modules.test_agent_base_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.ilo.test_bios.IloBiosTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_validate ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_cleaning_network ... ok -ironic.tests.unit.drivers.modules.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_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_snmp.SNMPDeviceDriverTestCase.test_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off ... 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_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on ... ok -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network ... ok -ironic.tests.unit.drivers.modules.test_agent_base_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_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_unconfigure_tenant_networks ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_from_volume ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ... 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.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.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.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.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist -ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_that_does_not_exist ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht ... ok -ironic.tests.unit.drivers.modules.test_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.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.OneViewAgentDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_deploy ... 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.db.test_conductor.DbConductorTestCase.test_register_conductor_override -ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override ... ok -ironic.tests.unit.drivers.modules.test_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.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_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_priv_nokey -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey ... ok -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist -ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist ... ok -ironic.tests.unit.drivers.modules.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.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.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.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.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id -ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id ... ok -ironic.tests.unit.drivers.modules.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.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.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.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_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.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.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.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_port_addresses_not_found ... ok -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... 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.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_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.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.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.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.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.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.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.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.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.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.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.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_description_invalid ... ok -ironic.tests.unit.drivers.modules.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.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_required_invalid ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ... 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.db.test_nodes.DbNodeTestCase.test_reserve_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... ok -ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps -ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ... ok -ironic.tests.unit.drivers.modules.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.test_base.TestDeployInterface.test_warning_on_heartbeat -ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ... 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_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.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.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.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.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.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.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.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.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_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_common.TestNeutronVifPortIDMixin.test_port_changed_address +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address ... 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.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.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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_traits_get_destroyed_after_destroying_a_node_by_uuid ... ok -ironic.tests.unit.drivers.modules.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.test_drac.IDRACHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ... 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.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.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.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_inspection_finished_at ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.db.test_nodes.DbNodeTestCase.test_update_node_provision -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... ok -ironic.tests.unit.drivers.modules.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.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ... ok -ironic.tests.unit.drivers.modules.test_agent_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.oneview.test_inspect.OneViewInspectTestCase.test_validate -ironic.tests.unit.drivers.modules.oneview.test_inspect.OneViewInspectTestCase.test_validate ... 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.db.test_nodes.DbNodeTestCase.test_update_node_with_traits -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.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.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node -ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.test_fake_hardware.FakeHardwareTestCase.test_get_properties -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ... 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.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.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol -ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_integer_auth_protocol ... ok -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode -ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_no_mode ... 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.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.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.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.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.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.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.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_supported_interfaces ... 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.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.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.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.db.test_ports.DbPortTestCase.test_get_port_list -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... ok -ironic.tests.unit.drivers.modules.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_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.test_oneview.OneViewHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_sorted ... ok -ironic.tests.unit.drivers.modules.test_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_stop_shellinabox_console_fail_nopid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid ... ok -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id -ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id ... ok -ironic.tests.unit.drivers.modules.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.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.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.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.test_oneview.OneViewHardwareTestCase.test_override_with_direct -ironic.tests.unit.drivers.test_oneview.OneViewHardwareTestCase.test_override_with_direct ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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.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.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties -ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties ... 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.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.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.objects.test_bios.TestBIOSSettingObject.test_list_create -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ... ok -ironic.tests.unit.drivers.modules.test_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.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.objects.test_bios.TestBIOSSettingObject.test_list_delete -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ... 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.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.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.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_volume_id ... ok -ironic.tests.unit.drivers.modules.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.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.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail -ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate_fail ... ok -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test__repr__includes_default_function_name_and_source_hash ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_ephemeral_disk ... ok -ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_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.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_persistent ... ok -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type ... ok -ironic.tests.unit.drivers.modules.test_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.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.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ... 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.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.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.objects.test_node.TestNodeObject.test_create -ironic.tests.unit.objects.test_node.TestNodeObject.test_create ... 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.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.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.objects.test_node.TestNodeObject.test_get_by_name_node_not_found -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found -ironic.tests.unit.objects.test_node.TestNodeObject.test_release_node_not_found ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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.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.objects.test_node.TestNodePayloads.test_node_set_power_state_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.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.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.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_as_dict_with_nested_object -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object ... 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.objects.test_objects.TestObject.test_contains -ironic.tests.unit.objects.test_objects.TestObject.test_contains ... 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.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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.db.test_nodes.DbNodeTestCase.test_update_node_no_provision +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision ... ok +ironic.tests.unit.drivers.modules.drac.test_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_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.db.test_nodes.DbNodeTestCase.test_update_node_not_found +ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_not_found ... ok +ironic.tests.unit.drivers.modules.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_validate +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ... ok +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_address ... ok +ironic.tests.unit.drivers.modules.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.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.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid +ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup_uuid ... ok +ironic.tests.unit.drivers.modules.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_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.db.test_ports.DbPortTestCase.test_get_port_by_uuid +ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_by_uuid ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_message_format_failure ... ok +ironic.tests.unit.drivers.modules.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.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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_nostandalone_ports ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.ilo.test_power.IloPowerTestCase.test_reboot +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot ... ok +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target +ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ... ok +ironic.tests.unit.drivers.modules.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.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_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.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_reboot_timeout +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_reboot_timeout ... 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.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.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.objects.test_objects.TestObject.test_obj_constructor -ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake -ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake ... ok -ironic.tests.unit.drivers.modules.test_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.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.objects.test_objects.TestObjectSerializer.test__process_object_conductor -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor ... ok -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance -ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test__validate_boot_into_iso_maintenance ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ... 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.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.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.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.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_nostandalone_ports +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports ... 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.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_reboot_fail ... ok +ironic.tests.unit.drivers.modules.network.test_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.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_nonroot_only ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_report ... 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.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.ansible.test_deploy.TestAnsibleDeploy.test_deploy -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ... 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.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.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.test_agent.AgentRescueTestCase.test_agent_unrescue -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... 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.objects.test_port.TestPortObject.test_payload_schemas -ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas ... 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_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.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.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.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_reboot_to_instance_deprecated -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_reboot_to_instance_deprecated ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi -ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ... 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.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.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.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh ... ok +ironic.tests.unit.drivers.modules.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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake +ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_unset_sleep_and_fake ... ok +ironic.tests.unit.drivers.modules.drac.test_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.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso +ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_validate_boot_into_iso ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... 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.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_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb +ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__max_volume_size_mb ... ok ironic.tests.unit.drivers.modules.irmc.test_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.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.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_image_cache.CleanupImageCacheTestCase.test_clean_up_fail -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_fail ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ... ok -ironic.tests.unit.drivers.modules.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.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked -ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ... ok -ironic.tests.unit.drivers.modules.test_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 -/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.DontBlockExecuteTestCase.test_no_exception_raised_for_execute -ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ... ok -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_files_with_links_untouched ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.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_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.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_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware ... 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-6b71c88e-f474-4b13-b53f-80b17fd1afc2 -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}"} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 403 Forbidden -Content-Type: application/json -Openstack-Request-Id: req-02b45d98-8ac6-40dc-9b76-4457274b3f78 -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}"} -GET: / {} -GOT:Response: 500 Internal Server Error -Content-Type: application/json -Openstack-Request-Id: req-dd4103e6-ad24-479a-859c-7f9794f78f3e -{"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. -Malformed option m1.key1value1 -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_master_out_of_date ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir -ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_no_master_dir ... ok -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate -ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ... 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_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_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_up_to_date ... ok -ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_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.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_inspector.CheckStatusTestCase.test_not_finished -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... 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.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_agent.TestAgentDeploy.test_get_clean_steps -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps ... 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.test_inspector.CommonFunctionsTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties ... 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_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.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist -ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware_mac_already_exist ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass ... 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.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.test_agent.AgentRAIDTestCase.test_delete_configuration -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration ... 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.TestAgentDeploy.test_reboot_to_instance -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_reboot_to_instance ... 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_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.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.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.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.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_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.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.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_secure_boot_mode_fail ... ok +ironic.tests.unit.drivers.modules.irmc.test_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.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority +ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps_priority ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectInternalMethodsTestCase.test__inspect_hardware_exception ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_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_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.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_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_attach_failure +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ... 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.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.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_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.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.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.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.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.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.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_none_raid_adapter_profile ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.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.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.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.TestNeutronVifPortIDMixin.test_vif_detach_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_portgroup ... 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.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.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none ... ok +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration +ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_delete_configuration ... ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_essential_properties_ok ... ok +ironic.tests.unit.drivers.modules.irmc.test_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_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_ipmitool.IPMIToolDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ... 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.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.network.test_flat.TestFlatInterface.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings ... ok +ironic.tests.unit.drivers.modules.network.test_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_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_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.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.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.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.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.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.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config ... ok +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets ... ok +ironic.tests.unit.drivers.modules.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.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_factory_reset +ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_factory_reset ... 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.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_clean_up -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ... 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.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.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.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.cimc.test_power.PowerTestCase.test_validate -ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_validate ... 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.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_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.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.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_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_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_flat.TestFlatInterface.test_vif_list +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_list ... 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.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.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.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.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 -/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 commit the pending BIOS changes for node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123. Reason: An unknown exception occurred. -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail -ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_fail ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy ... 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_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_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.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.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_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.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_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_soft_reboot_timeout_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok ... 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.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_all_physnets ... ok -ironic.tests.unit.drivers.modules.test_agent_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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail ... ok -ironic.tests.unit.drivers.modules.test_agent.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_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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron ... ok -ironic.tests.unit.drivers.modules.test_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.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.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_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_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes -ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_no_nodes ... ok -ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on ... 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.drac.test_power.DracPowerTestCase.test_set_power_state_timeout -ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports ... ok -ironic.tests.unit.drivers.modules.test_agent_base_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_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.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first ... ok -ironic.tests.unit.drivers.modules.test_agent_base_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.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.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.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.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.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_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.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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... ok -ironic.tests.unit.drivers.modules.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.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_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_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_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_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.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.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_agent_client.TestAgentClient.test__get_command_url -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc ... ok -ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_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_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__get_console_pid_file -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file ... 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.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_file_not_found ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_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_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 -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console ... 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.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.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.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_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.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.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout ... ok -ironic.tests.unit.drivers.modules.test_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.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.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_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_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_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir ... ok -ironic.tests.unit.drivers.modules.test_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_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_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.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.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_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_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.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.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.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.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_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.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_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.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.network.test_flat.TestFlatInterface.test_add_cleaning_network -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_good ... ok -ironic.tests.unit.drivers.modules.test_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_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.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ... ok -ironic.tests.unit.drivers.modules.test_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.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.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_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_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.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_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_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel -ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_no_kernel ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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.OtherFunctionTestCase.test_get_dev -ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_dev ... 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.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot -ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_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_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_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.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_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.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.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_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.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.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_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_configure_tenant_networks_with_client_id +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.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.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.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_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.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_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_update_fail ... ok -ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok -ironic.tests.unit.drivers.modules.test_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_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.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.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.xclarity.test_management.XClarityManagementDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate ... 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.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.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network ... ok +ironic.tests.unit.drivers.modules.network.test_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.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_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.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.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.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.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed_on_rebuild ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network ... 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.cimc.test_power.PowerTestCase.test_validate +ironic.tests.unit.drivers.modules.cimc.test_power.PowerTestCase.test_validate ... 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_power.IloPowerInternalMethodsTestCase.test__get_power_state +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_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_ipmitool.IPMIToolSocatDriverTestCase.test_start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ... 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.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.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.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_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_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_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_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_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.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ... ok -ironic.tests.unit.drivers.modules.test_image_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.IPMIToolSocatDriverTestCase.test_stop_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_priority_only ... 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.test_base.RAIDInterfaceTestCase.test_validate -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... 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.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__get_power_state_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.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.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.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.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_inspector.InspectHardwareTestCase.test_ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_ok ... 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.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.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.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_raises_1 -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls_raises_1 ... 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.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.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces ... 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_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.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.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_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_inspector.CheckStatusTestCase.test_not_inspecting -ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... 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.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.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.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.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_neutron.NeutronInterfaceTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue ... 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.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_noop.NoopInterfaceTestCase.test_remove_provisioning_network +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_remove_provisioning_network ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.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.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.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_vif_detach +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node ... ok +ironic.tests.unit.drivers.modules.irmc.test_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.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.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__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.network.test_noop.NoopInterfaceTestCase.test_validate +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test__init_fail_invalid_fpga_ids_input ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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__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_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.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_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_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_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.test_inspector.GetClientTestCase.test__get_client -ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ... 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.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.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.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.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.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_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_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.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.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.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare -ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare ... 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.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ... ok -ironic.tests.unit.drivers.modules.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.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_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.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.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.test_fake_hardware.FakeHardwareTestCase.test_power_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... 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.test_generic.ManualManagementHardwareTestCase.test_get_properties -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ... ok -ironic.tests.unit.drivers.modules.ilo.test_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.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_snmp.SNMPHardwareTestCase.test_fake_management -ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_fake_management ... 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.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_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_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_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_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.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append_duplicate ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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.test_utils.UtilsTestCase.test_get_node_capability -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ... 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.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.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_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.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_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list +ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_remove_single_or_list_of_files_with_file_list ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_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.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.oneview.test_deploy.OneViewAgentDeployTestCase.test_deploy +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_deploy ... 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.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.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.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode ... ok +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware +ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware ... 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.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.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_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.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_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.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.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.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.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.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail +ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_clean_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_common.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.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.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_management.DracManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.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_set_power_invalid_state -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_invalid_state ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_timeout_fail ... 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_fields.TestFlexibleDictField.test_coerce_bad_values -ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ... ok +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_sets_loc_obj_remove_to_file_if_no_upload ... ok +ironic.tests.unit.drivers.modules.drac.test_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.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_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__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.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.OneViewAgentDeployTestCase.test_prepare_active_node +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.test_prepare_active_node ... 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_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_fail ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing ... ok -ironic.tests.unit.drivers.modules.ilo.test_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_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.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_trait_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set ... 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.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_get_and_validate_firmware_image_info +ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info ... ok +ironic.tests.unit.drivers.modules.drac.test_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.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_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 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) @@ -19300,1981 +17681,3641 @@ 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.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ... ok -ironic.tests.unit.drivers.modules.test_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_set_power_on_timeout_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_timeout_fail ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found -ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found ... ok -ironic.tests.unit.drivers.modules.test_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.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.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_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.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase -ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase ... ok -ironic.tests.unit.drivers.modules.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_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_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.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_corrected_power_state_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload ... 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.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.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc ... ok +ironic.tests.unit.drivers.modules.ilo.test_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_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.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.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.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key +ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_essential_keys_fail_missing_key ... ok +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type +ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_difference_physical_disks_type ... ok +ironic.tests.unit.drivers.modules.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.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_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.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.oneview.test_deploy.OneViewIscsiDeployTestCase.test_deploy +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_deploy ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron +ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_neutron ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_not_attached ... 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_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.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.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__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.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.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_utils.OneViewDeployUtilsTestCase.test_tear_down +ironic.tests.unit.drivers.modules.oneview.test_deploy_utils.OneViewDeployUtilsTestCase.test_tear_down ... 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.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.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.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.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.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_set_onetime_boot_persistent +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverFunctionsTestCase.test_set_onetime_boot_persistent ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed +ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__attach_boot_iso_if_needed ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks ... 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_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_get_properties +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_get_properties ... 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.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.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.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.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_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_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.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_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_ok ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits ... ok -ironic.tests.unit.drivers.modules.test_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_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.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.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_level_too_low ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_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.objects.test_objects.TestObject.test_load -ironic.tests.unit.objects.test_objects.TestObject.test_load ... 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.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.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.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_version_passes_revision -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_passes_revision ... 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.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.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization_iterables ... ok -ironic.tests.unit.drivers.modules.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.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.TestObjectSerializer.test_serialize_entity_pinned_conductor -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_with_auth ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd ... ok -ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly -ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ... ok -ironic.tests.unit.drivers.modules.redfish.test_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_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.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok -ironic.tests.unit.drivers.modules.test_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.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok -ironic.tests.unit.drivers.modules.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.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.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_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.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict -ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ... 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.objects.test_trait.TestTraitObject.test_create_list -ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list ... ok -ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists -ironic.tests.unit.objects.test_trait.TestTraitObject.test_exists ... 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.objects.test_volume_connector.TestVolumeConnectorObject.test_get -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ... 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.IPMIToolShellinaboxTestCase.test_start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ... ok -ironic.tests.unit.drivers.modules.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.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_password ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ... 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.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.test_base.BlockExecuteTestCase.test_can_mock_execute -ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ... ok -ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_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.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.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.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.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_numeric_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password ... 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.redfish.test_management.RedfishManagementTestCase.test_validate -ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate ... 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_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning ... 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.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_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.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_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.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_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_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_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.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.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.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.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.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.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewIscsiDeployTestCase.test_prepare ... 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.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_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.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.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.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.ilo.test_boot.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.oneview.test_management.OneViewManagementDriverTestCase.test_validate +ironic.tests.unit.drivers.modules.oneview.test_management.OneViewManagementDriverTestCase.test_validate ... 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.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.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.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.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.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.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_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_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.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.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.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.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.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_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_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_with_physnet ... ok +ironic.tests.unit.drivers.modules.irmc.test_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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_get_system +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system ... ok +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup +ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_portgroup ... ok +ironic.tests.unit.drivers.modules.redfish.test_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.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.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.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_flat.TestFlatInterface.test_validate +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate ... 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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.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.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.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.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.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.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.network.test_neutron.NeutronInterfaceTestCase.test_validate +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate ... 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.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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot ... ok +ironic.tests.unit.drivers.modules.redfish.test_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_inspect.IloInspectTestCase.test_validate +ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ... 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.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.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_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_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.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.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.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_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.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.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_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.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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_targets ... ok +ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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_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.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.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.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.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.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.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.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_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.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.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_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_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.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.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_failed ... ok +ironic.tests.unit.drivers.modules.test_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 +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.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.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.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.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.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.test_agent.TestAgentDeploy.test_validate +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate ... 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.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password +ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_reset_ilo_credential_no_password ... ok +ironic.tests.unit.drivers.modules.test_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.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_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.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.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.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.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_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.oneview.test_deploy.OneViewAgentDeployTestCase.test_validate +ironic.tests.unit.drivers.modules.oneview.test_deploy.OneViewAgentDeployTestCase.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.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.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled +ironic.tests.unit.drivers.modules.storage.test_external.ExternalInterfaceTestCase.test_validate_fails_with_ipxe_not_enabled ... ok +ironic.tests.unit.drivers.modules.network.test_common.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.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.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.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.test_noop.NoInterfacesTestCase.test_rescue -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue ... 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.redfish.test_power.RedfishPowerTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate ... 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.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.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.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_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.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false ... ok +ironic.tests.unit.drivers.modules.irmc.test_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.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_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.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.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.test_agent.TestAgentDeploy.test_clean_up +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ... 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.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.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.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_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_execute_clean_step +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step ... 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_client.TestAgentClient.test_prepare_image +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_prepare_image ... 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.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.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.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.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_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_agent.TestAgentDeploy.test_continue_deploy +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_continue_deploy ... 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.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.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.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.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.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_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_no_port -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port ... 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.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.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_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.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list -ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_outside_list ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ... 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_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_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__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_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_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.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__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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_no_physnets ... ok -ironic.tests.unit.drivers.modules.test_agent.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_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_fails_no_rescue_kernel ... ok -ironic.tests.unit.drivers.modules.test_pxe.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_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_snmp.SNMPClientTestCase.test_get_next -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 ... ok -ironic.tests.unit.drivers.modules.test_pxe.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.network.test_flat.TestFlatInterface.test_vif_port_changed +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_port_changed ... ok +ironic.tests.unit.drivers.modules.test_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.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_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_agent.TestAgentDeploy.test_prepare_adopting +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting ... 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.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.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.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.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_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_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_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_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.test_snmp.SNMPClientTestCase.test_get_next_err_transport -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_pxe_enabled_first ... ok -ironic.tests.unit.drivers.modules.test_pxe.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_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_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.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.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_agent.TestAgentDeploy.test_validate_invalid_proxies +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_proxies ... 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.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_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.drivers.modules.test_snmp.SNMPClientTestCase.test_set -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup -ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_vif_attached_to_portgroup ... ok -ironic.tests.unit.drivers.modules.test_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_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitchplus_power_state_off ... ok -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address ... ok -ironic.tests.unit.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_agent.TestAgentDeploy.test_prepare -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ... 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_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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_no_vif_id ... ok -ironic.tests.unit.drivers.modules.test_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_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_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_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.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.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.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.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_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_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_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_get_disk_label +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ... 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.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node ... ok +ironic.tests.unit.drivers.modules.test_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.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.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_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_agent.TestAgentMethods.test_check_image_size_without_memory_mb +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb ... ok +ironic.tests.unit.drivers.modules.test_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.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.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_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_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.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_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.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network ... ok +ironic.tests.unit.drivers.modules.test_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.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.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_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_prepare_rescue_states +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ... 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.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.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ... ok +ironic.tests.unit.drivers.modules.test_agent.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.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_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.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.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.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.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.AgentRAIDTestCase.test_create_configuration +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration ... 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_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_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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc +ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_pxe_ports_exc ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration +ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_delete_configuration ... 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_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.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_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_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.AgentRescueTestCase.test_agent_rescue_validate +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_validate ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ... ok -ironic.tests.unit.drivers.modules.test_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_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_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_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_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_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_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.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.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_agent.TestAgentDeploy.test_tear_down +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount ... ok +ironic.tests.unit.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_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.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_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.TestImageCacheFetch.test__download_image +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test__download_image ... 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.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.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.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_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_check_inspecting +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_check_inspecting ... 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_inspector.CommonFunctionsTestCase.test_validate_ok +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ... ok +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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_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_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_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.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_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.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_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.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.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.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.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.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_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_prepare +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ... 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.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_ipmitool.IPMIToolDriverTestCase.test_reboot_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_ok ... 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_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_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.TestAgentDeploy.test_prepare_cleaning +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ... 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_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_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_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir ... ok +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_cleaning_network_from_node ... ok +ironic.tests.unit.drivers.modules.test_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_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.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.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.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_agent.TestAgentDeploy.test_get_properties +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties ... 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.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_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_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_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_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_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.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_flat.TestFlatInterface.test_remove_cleaning_network_from_node +ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node ... ok +ironic.tests.unit.drivers.modules.test_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_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_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.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_cleaning_network_with_sg ... ok +ironic.tests.unit.drivers.modules.test_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_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_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.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.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__send_raw_bytes_fail ... ok +ironic.tests.unit.drivers.modules.test_agent_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_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_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning +ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_prepare_inband_cleaning ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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_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_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.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_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.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_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_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_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_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.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.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.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_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.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.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.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_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_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_pxe.PXERamdiskDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy ... 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.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_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_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.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_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_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.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.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.TestAgentDeploy.test_validate_storage_should_write_image_false +ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false ... ok +ironic.tests.unit.drivers.modules.test_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.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.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.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.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_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_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_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_agent.TestAgentMethods.test_check_image_size +ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size ... 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_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_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.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.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_iscsi_deploy.ISCSIDeployTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_properties ... 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_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_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing ... 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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports -ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_novif_nopxe_ports ... ok +ironic.tests.unit.drivers.modules.test_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_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_console_validate -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate ... 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_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.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.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ... 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.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.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_without_memory_mb ... ok -ironic.tests.unit.drivers.modules.test_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.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_snmp.SNMPClientTestCase.test__get_context -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ... 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.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.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.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.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_ipxe_iscsi_boot +ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot ... 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.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.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.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_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_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_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_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.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_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_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_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_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.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.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_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_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_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.test_inspector.CheckStatusTestCase.test_not_finished +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list ... ok +ironic.tests.unit.drivers.modules.test_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_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.oneview.test_power.OneViewPowerDriverTestCase.test_validate +ironic.tests.unit.drivers.modules.oneview.test_power.OneViewPowerDriverTestCase.test_validate ... ok +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed +ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed ... ok +ironic.tests.unit.drivers.modules.test_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.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_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_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_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.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.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_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_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_off ... 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.redfish.test_management.RedfishManagementTestCase.test_loading_error +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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.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.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_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_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.network.test_flat.TestFlatInterface.test_validate_from_node -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_from_node ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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_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.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_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_inspector.CheckStatusTestCase.test_not_inspector +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ... ok +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach +ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ... ok +ironic.tests.unit.drivers.modules.test_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_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_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_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_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_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_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_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_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.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.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_mode_fail ... ok +ironic.tests.unit.drivers.modules.test_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_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_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.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.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_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_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_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_vif_attach -ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach ... 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_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_dir -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance ... 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.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_nopid ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console ... ok -ironic.tests.unit.drivers.modules.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_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_pxe.PXEBootTestCase.test_prepare_instance_localboot -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot ... 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.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_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ... 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_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.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_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.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_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_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.IPMIToolDriverTestCase.test__bmc_reset_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ... 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_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_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_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_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.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.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_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__get_command_url +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ... 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_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.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_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_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_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.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.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_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir ... ok +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid_dir_tempdir ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_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_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_start_socat_console_fail +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail ... 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.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.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_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_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console ... ok +ironic.tests.unit.drivers.modules.test_agent_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_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.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_agent_client.TestAgentClient.test__command +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command ... 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.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.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_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_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_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__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_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_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_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_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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_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__get_console_pid +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__get_console_pid ... 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_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.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_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 +ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time +ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch +ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_uefi_without_by_arch ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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_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_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_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_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_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.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch ... ok -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_list ... 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.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.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.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed -ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed ... ok -ironic.tests.unit.drivers.modules.test_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_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_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_ipmitool.IPMIToolDriverTestCase.test_power_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ... 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_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.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.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_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.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.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_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_reboot_already_off +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_from_keystone ... ok +ironic.tests.unit.drivers.modules.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.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.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_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_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_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_reboot_fail_power_on +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_fail_power_on ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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.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.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.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.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.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.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_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_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_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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.redfish.test_management.RedfishManagementTestCase.test_validate +ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_validate ... 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.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_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_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.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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__parse_driver_info_fail ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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.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_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_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_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_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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_vendor_routes ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_single_path ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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_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_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_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_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_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.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.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.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.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.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ... ok -ironic.tests.unit.drivers.modules.test_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_snmp.SNMPDeviceDriverTestCase.test_power_off_delay -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_snmp_set_failure ... 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.network.test_noop.NoopInterfaceTestCase.test_validate -ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... 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.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_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.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors ... ok +ironic.tests.unit.drivers.modules.test_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_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.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_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_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_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_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_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_undefined_credentials ... ok +ironic.tests.unit.drivers.modules.test_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__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.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_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.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_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_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_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_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.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.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_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_ensure_cache_size +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size ... ok +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering +ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ... 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_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_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_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_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.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_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_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.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.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_inspector.CheckStatusTestCase.test_not_inspecting +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... ok +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme ... ok +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties ... 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.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port +ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail ... 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_pxe.PXEValidateRescueTestCase.test_validate_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ... 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_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_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.SNMPClientTestCase.test___init__ +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ... 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_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_multiple_fc_wwns ... ok +ironic.tests.unit.drivers.modules.test_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_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_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.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.test_pxe.PXEBootTestCase.test_prepare_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ... 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.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.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.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_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_call_bmc_reset_cold ... ok +ironic.tests.unit.drivers.modules.test_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_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_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_ok ... ok +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_unknown_raises_excption ... ok +ironic.tests.unit.drivers.modules.test_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_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_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.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_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_snmp.SNMPClientTestCase.test_get_next +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... 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_invalid_image_href ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateImagePropertiesTestCase.test_validate_image_properties_invalid_image_href ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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_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.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_detach_volumes_failure_raises_exception ... ok +ironic.tests.unit.drivers.modules.test_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_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_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_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_kernel ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_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_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_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_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_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.TestFetchCleanup.test__fetch +ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... 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_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_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_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.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.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_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.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_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_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.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_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_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.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.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.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_send_raw_bytes_ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_ok ... 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_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_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.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_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.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_get_system -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_get_system ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info ... ok -ironic.tests.unit.drivers.modules.test_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.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_missing_info ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_capath ... ok -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca -ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ... ok -ironic.tests.unit.drivers.modules.test_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_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_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_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.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_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_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_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_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.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_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_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_snmp_objects ... 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_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__exec_ipmitool_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_exception ... 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_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping -ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_create_configuration_no_target_raid_config_after_skipping ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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_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_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_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_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_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.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image +ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ... ok +ironic.tests.unit.drivers.modules.test_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_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_inspector.GetClientTestCase.test__get_client +ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ... 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_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_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.IPMIToolCheckInitTestCase.test_power_init_calls +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckInitTestCase.test_power_init_calls ... 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_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_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_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.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_empty_password ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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_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_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_inspector.CheckStatusTestCase.test_status_error +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error ... 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_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_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_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_agent.AgentRescueTestCase.test_agent_rescue +ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ... 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.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_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_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_on ... ok +ironic.tests.unit.drivers.modules.test_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.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.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_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_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_on ... 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_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_cyberpower_power_reset ... ok -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot -ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up_no_manage_boot ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_str_password ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__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.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_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_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_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_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_on_snmp_get_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_snmp_get_failure ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_invalid_ipmi_prot_version ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_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_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_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.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_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_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_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_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.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_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_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_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_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_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_noop.NoInterfacesTestCase.test_bios +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_power_on_with_next_boot_timeout ... ok +ironic.tests.unit.drivers.modules.test_agent_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_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_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 +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_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__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_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.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_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_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_with_dual_bridging +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_dual_bridging ... 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_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_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_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__make_password_file_write_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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.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_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_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.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ... 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_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_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.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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.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_agent.TestAgentDeploy.test_deploy ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_is_done ... 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_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_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.IPMIToolShellinaboxTestCase.test_start_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_start_console ... 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_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ... ok +ironic.tests.unit.drivers.modules.test_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_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.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_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_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.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_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_iscsi_deploy.ISCSIDeployTestCase.test_deploy -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_deploy ... 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_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_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_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ... 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.IPMIToolShellinaboxTestCase.test_stop_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ... 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_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_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_numeric_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_numeric_password ... 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_agent.TestAgentDeploy.test_prepare_adopting -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting ... 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_inspect -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ... ok -ironic.tests.unit.drivers.modules.test_agent.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_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate ... 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_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_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_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_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_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_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_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_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_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_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_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_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.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_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_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_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_prepare_cleaning ... 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_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.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_validate_fail_no_port +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_fail_no_port ... 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_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_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_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_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_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_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.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_clean_up_instance +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance ... 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.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_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_pxe.PXEBootTestCase.test_validate_good +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ... 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_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_pxe.PXEBootTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ... 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.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__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.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.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_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_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_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_clean_up_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ... 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_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_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_timeout ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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_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_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_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_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.SNMPDeviceDriverTestCase.test_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_power_on ... 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_pxe.PXEBootTestCase.test_prepare_instance_localboot_active +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_localboot_active ... 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_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_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_timeout ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false -ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_storage_should_write_image_false ... ok -ironic.tests.unit.drivers.modules.test_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_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_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_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_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 -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_key_proto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto ... ok -ironic.tests.unit.drivers.modules.test_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.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_short_key ... ok -ironic.tests.unit.drivers.modules.test_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_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_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_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_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_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_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_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_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.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_deploy_utils.OtherFunctionTestCase.test_fetch_images +ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images ... ok +ironic.tests.unit.drivers.modules.test_snmp.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_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_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_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_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_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_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_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_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_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_continue_cleaning_running +ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running ... 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_noop.NoInterfacesTestCase.test_rescue +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_rescue ... 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_noop_mgmt.TestNoopManagement.test_dummy_methods +ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_deploy ... 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.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_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_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.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_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.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.test_pxe.PXERamdiskDeployTestCase.test_prepare -ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare ... 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_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_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_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_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.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.test_pxe.PXEValidateRescueTestCase.test_validate_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ... 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.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_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.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.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_snmp.SNMPClientTestCase.test_set_err_engine -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ... 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.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_deploy +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__parse_driver_info_deploy ... 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.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.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_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_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_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_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__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.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_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_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_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_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_reset ... ok -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__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_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_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_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_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.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_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_agent_client.TestAgentClient.test_sync +ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync ... ok +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ... 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.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.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.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_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_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 -ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_get_socat_console_url_tcp6 ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ... 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_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_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_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_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_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_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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc +ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_instance_info_with_exc ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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_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_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_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.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_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_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_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_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_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_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.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.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_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_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_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on ... ok -ironic.tests.unit.drivers.modules.test_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.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state_fail ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ... ok -ironic.tests.unit.drivers.modules.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.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ... 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.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces -ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_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_ilo.IloHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_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_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare_unrescuing ... 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.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.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_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_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_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_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_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay ... ok +ironic.tests.unit.drivers.modules.test_deploy_utils.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_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_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.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_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_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_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ... 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_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_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.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ... ok +ironic.tests.unit.drivers.modules.test_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_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.test_base.CleanStepTestCase.test_get_and_execute_clean_steps +ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ... ok +ironic.tests.unit.drivers.modules.test_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_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk +ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue_no_rescue_ramdisk ... ok +ironic.tests.unit.drivers.test_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_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_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.test_base.RAIDInterfaceTestCase.test_validate +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... 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.SNMPClientTestCase.test__get_context +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ... 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.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ... ok +ironic.tests.unit.drivers.modules.test_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_pxe.PXERamdiskDeployTestCase.test_prepare +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_prepare ... 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_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.TestStorageInterfaceUtils.test_tear_down_storage_configuration +ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix ... ok +ironic.tests.unit.drivers.modules.test_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_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_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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community ... ok +ironic.tests.unit.drivers.modules.test_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.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_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_override_with_noop_mgmt -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ... 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.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.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.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_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.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_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_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.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_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_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_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_set_failure ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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.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_chassis.TestChassisObject.test_list -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... 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.TestMacAddressField.test_coerce_bad_values -ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce_bad_values ... 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.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value -ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ... ok -ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value -ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ... ok -ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_value -ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_good_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.TestConvertToVersion.test_rescue_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_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.TestNodeObject.test_create_with_invalid_properties -ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_invalid_properties ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits -ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ... ok -ironic.tests.unit.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_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.objects.test_node.TestNodeObject.test_save -ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_off ... ok +ironic.tests.unit.drivers.modules.test_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_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.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_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_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.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.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ... ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_on ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ... 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.test_utils.UtilsTestCase.test_capabilities_to_dict +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict ... 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_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_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_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_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_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_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.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_invalid_character_fail ... ok +ironic.tests.unit.drivers.modules.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_aten_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_state_on ... 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_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_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_get_power_state_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state_exception ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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_inspector.CheckStatusTestCase.test_status_ok +ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ... 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_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.ucs.test_helper.UcsValidateParametersTestCase.test_logout +ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_logout ... 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_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_state_pending_on ... ok +ironic.tests.unit.drivers.modules.test_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.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_inspector.InspectHardwareTestCase.test_error +ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_error ... 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_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.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_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.objects.test_bios.TestBIOSSettingObject.test_save +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... 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_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_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_snmp.SNMPDeviceDriverTestCase.test_power_state_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error ... 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.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ... ok +ironic.tests.unit.objects.test_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_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_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_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.objects.test_conductor.TestConductorObject.test_register +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ... 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.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_pxe.PXERamdiskDeployTestCase.test_validate +ironic.tests.unit.drivers.modules.test_pxe.PXERamdiskDeployTestCase.test_validate ... 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_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing ... ok +ironic.tests.unit.drivers.modules.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.objects.test_node.TestConvertToVersion.test_bios_supported_set +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_set ... ok +ironic.tests.unit.drivers.modules.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.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.SNMPClientTestCase.test__get_transport_custom_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_custom_timeout ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_missing ... ok +ironic.tests.unit.drivers.modules.test_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.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing_remove ... 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.TestNodeObject.test_as_dict_with_traits +ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_power_state ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found ... ok +ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_set_boot_device_unknown_exception ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ... ok +ironic.tests.unit.drivers.modules.test_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_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_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.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_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_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects ... 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.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.test_snmp.SNMPDeviceDriverTestCase.test_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh ironic.tests.unit.objects.test_node.TestNodeObject.test_save_after_refresh ... 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.TestMisc.test_max_version_one -ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_one ... 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.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase +ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... ok ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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.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_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_changed_2 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ... 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.objects.test_objects.TestObject.test_convert_to_version_same -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_dehydration -ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.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.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_reset_off_delay_on_delay -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_delay_on_delay ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_downgrade ... ok -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk -ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_non_glance_image_missing_ramdisk ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ... 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_get_target_version_pinned -ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned ... 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.objects.test_objects.TestObject.test_hydration -ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns -ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok -ironic.tests.unit.drivers.modules.test_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.objects.test_objects.TestObject.test_static_result -ironic.tests.unit.objects.test_objects.TestObject.test_static_result ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions ... 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.objects.test_objects.TestObject.test_hydration_type_error +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... ok +ironic.tests.unit.drivers.modules.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.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.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.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_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_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_object_inheritance +ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... 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.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_object_property +ironic.tests.unit.objects.test_objects.TestObject.test_object_property ... 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.objects.test_objects.TestObjectSerializer.test__process_object_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ... ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok -ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ... 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_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_inspector.InspectHardwareAbortTestCase.test_abort_ok -ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ... 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.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.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.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.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_default ... ok -ironic.tests.unit.drivers.modules.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.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.test_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.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_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port +ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info_invalid_port ... ok +ironic.tests.unit.objects.test_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.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero ... ok +ironic.tests.unit.drivers.modules.test_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.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_object_serialization +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_object_serialization ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove ... ok +ironic.tests.unit.drivers.modules.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_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.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_list ironic.tests.unit.objects.test_port.TestPortObject.test_list ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_on ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_force_boot_device_persistent ... ok -ironic.tests.unit.drivers.modules.test_snmp.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.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_apc_rackpdu -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu ... ok -ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh -ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ... ok -ironic.tests.unit.drivers.modules.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.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_cyberpower ... 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_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.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_unknown_pdu ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_driver_routes ... ok ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_teltronix_snmp_objects ... 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_missing_driver -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_driver ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id ... ok -ironic.tests.unit.drivers.modules.test_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_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.test_base.RAIDInterfaceTestCase.test_validate_raid_config +ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ... 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.objects.test_trait.TestTraitObject.test_as_dict +ironic.tests.unit.objects.test_trait.TestTraitObject.test_as_dict ... 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_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_power_off_timeout_ok ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy_list ... ok -ironic.tests.unit.drivers.modules.test_snmp.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.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.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.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_snmp_get_failure ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_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.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_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_no_sleep ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save_after_refresh ... 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_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_check_exit_code ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_off ... 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.objects.test_volume_target.TestVolumeTargetObject.test_refresh +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure ... 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.test_fake_hardware.FakeHardwareTestCase.test_console_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ... ok +ironic.tests.unit.drivers.modules.test_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_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__parse_driver_info +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info ... ok + +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-95f50746-a361-4f78-bc69-9d7a0c6cebce +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": "2021-09-20T14:58:19.255730+00:00", "updated_at": "2021-09-20T14:58:19.420980+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-127a7914-c519-4aab-960c-58b2110c4244 +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": "2021-09-20T14:58:19.255730+00:00", "updated_at": "2021-09-20T14:58:19.420980+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-d0eb4d38-71e1-4ede-8255-8dc5eb3c21de +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": "2021-09-20T14:58:23.223713+00:00", "updated_at": null} +POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +Openstack-Request-Id: req-2d850641-c373-43e7-87b5-482d896ea833 +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": "2021-09-20T14:58:26.701744+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-09-20T14:58:26.701744+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'}]}]} +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-1dabd29c-0fa1-473b-8352-9bd2294c3222 +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}"} +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-4e170ca4-83e4-42fb-b6ae-61a002ac12f6 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} +func1() migrated 10 of 10 objects. +func2() migrated 0 of 0 objects. +Data migrations have not completed. Please re-run. +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_fail ... ok +ironic.tests.unit.drivers.modules.test_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__parse_driver_info_have_credentials +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials ... ok +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__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_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_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_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.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.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.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ... ok +ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__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_snmp.SNMPDriverTestCase.test_reboot_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_key_proto ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_snmp_get_failure ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.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.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_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.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_boot_device ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ... ok +ironic.tests.unit.drivers.modules.test_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_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_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.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_force_persistent_boot_false +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_false ... 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.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_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_retry_timeout +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout ... 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.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_snmp.SNMPDriverTestCase.test_set_power_state_on_error +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_error ... ok +ironic.tests.unit.drivers.modules.test_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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas ... ok +ironic.tests.unit.drivers.modules.test_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.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.SNMPValidateParametersTestCase.test__parse_driver_info_default_version ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version ... 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. -/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_by_volume_id -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ... ok - -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_write_community ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_eatonpower ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_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_invalid_version ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version ... 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.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.objects.test_chassis.TestChassisObject.test_save_after_refresh +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save_after_refresh ... ok +ironic.tests.unit.drivers.modules.test_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_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_teltronix -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_teltronix ... 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_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.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_management.UcsManagementTestCase.test_get_properties -ironic.tests.unit.drivers.modules.ucs.test_management.UcsManagementTestCase.test_get_properties ... 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.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.ucs.test_power.UcsPowerTestCase.test_reboot -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot ... 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.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_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.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.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.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.TestBareDriver.test_class_variables -ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... 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_with_port -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_port ... 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.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.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.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error ... 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.test_fake_hardware.FakeHardwareTestCase.test_console_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ... ok -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id -ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_get_server_hardware_id ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_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.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.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.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_unset ... ok +ironic.tests.unit.drivers.modules.test_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_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_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_node.TestConvertToVersion.test_fault_supported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_supported_missing ... 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.test_snmp.SNMPHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_snmp.SNMPHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto ... ok +ironic.tests.unit.drivers.modules.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_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.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_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.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_missing ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_compat ... ok +ironic.tests.unit.objects.test_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.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ... ok +ironic.tests.unit.drivers.modules.test_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__get_ipmi_cmd ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd ... 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.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_empty_dict -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_empty_dict ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_all_args ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ... ok -ironic.tests.unit.drivers.test_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_base.PassthruDecoratorTestCase.test_passthru_nonironicexception -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ... 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.test_utils.UtilsTestCase.test_capabilities_to_dict -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate_raid_config ... ok -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... 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.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.drivers.test_utils.UtilsTestCase.test_add_node_capability_append +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append ... ok +ironic.tests.unit.drivers.modules.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.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_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_node.TestNodeObject.test_get_bad_id_and_uuid +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_bad_id_and_uuid ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user ... ok +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password ... 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_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_node.TestNodeObject.test_get_by_name +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh ironic.tests.unit.objects.test_chassis.TestChassisObject.test_refresh ... ok -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate -ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_validate ... 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.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_conductor.TestConductorObject.test_unregister -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ... 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.TestNotificationStatusField.test_coerce_bad_value -ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ... 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.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_agent_rescue ... ok -ironic.tests.unit.objects.test_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_bios_unsupported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_missing ... 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.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.objects.test_node.TestNodeObject.test_reserve +ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ... 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.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.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.objects.test_node.TestNodeObject.test_save +ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... 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_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ... ok +ironic.tests.unit.objects.test_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_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_fields.TestFlexibleDictField.test_coerce +ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce ... 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.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.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.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_fields.TestStringFieldThatAcceptsCallable.test_coerce_function +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ... 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.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok +ironic.tests.unit.objects.test_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_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_conductor_group_supported_unset -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_unset ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration ... ok -ironic.tests.unit.drivers.modules.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.objects.test_node.TestNodeObject.test_get_by_name -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_port_addresses ... 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.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_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.objects.test_node.TestNodeObject.test_touch_provisioning -ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ... 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.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_noop.NoInterfacesTestCase.test_bios -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_bios ... ok -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload -ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload ... ok -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console ... 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_notification.TestNotificationBase.test_event_type_invalid_status_fails -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_invalid_status_fails ... ok -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ... 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_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_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_node.TestConvertToVersion.test_traits_unsupported_missing +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ... 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.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_node.TestNodeObject.test__validate_property_values_success +ironic.tests.unit.objects.test_node.TestNodeObject.test__validate_property_values_success ... ok +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_continue_deploy_localboot ... 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.TestMisc.test_max_version ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_uuid ... ok +ironic.tests.unit.drivers.modules.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.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console +ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ... ok ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_old ... 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.objects.test_objects.TestObject.test_as_dict ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ... 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.objects.test_objects.TestObject.test_changed_1 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability ... ok -ironic.tests.unit.objects.test_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_get -ironic.tests.unit.objects.test_objects.TestObject.test_get ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail ... ok -ironic.tests.unit.objects.test_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_hydration_type_error -ironic.tests.unit.objects.test_objects.TestObject.test_hydration_type_error ... 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_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.objects.test_bios.TestBIOSSettingObject.test_list_save -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ... 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_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_unsupported_set_no_remove_non_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.xclarity.test_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.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_changed_4 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... 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_objects.TestObject.test_do_version_changes_for_db_pinned +ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned ... 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_obj_fields +ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ... 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.objects.test_node.TestNodeObject.test_touch_provisioning +ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ... 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_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.objects.test_objects.TestObject.test_orphaned_object +ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... 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.xclarity.test_management.XClarityManagementDriverTestCase.test_validate +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_validate ... 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_node.TestNodePayloads.test_node_crud_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_crud_payload ... 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_port.TestConvertToVersion.test_vif_in_extra_lower_version +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ... 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_port.TestPortObject.test_refresh ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove ... ok +ironic.tests.unit.drivers.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.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_portgroup.TestPortgroupObject.test_get_by_address ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address ... 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.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_trait.TestTraitObject.test_create -ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ... 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_volume_connector.TestVolumeConnectorObject.test_get_by_id -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_id ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_default ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none ... 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_node.TestNodeObject.test_get_by_id -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found -ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found ... ok +ironic.tests.unit.drivers.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_objects.TestObject.test_changed_1 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ... 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.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_timeout ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_2 ... 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.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.objects.test_portgroup.TestPortgroupObject.test_refresh +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_refresh ... 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.objects.test_objects.TestObject.test_dehydration +ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok +ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps +ironic.tests.unit.drivers.test_base.DeployStepTestCase.test_get_and_execute_deploy_steps ... ok +ironic.tests.unit.drivers.modules.test_snmp.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_volume_connector.TestVolumeConnectorObject.test_get +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ... ok +ironic.tests.unit.drivers.modules.test_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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3 ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_no_pin ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad +ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_bad ... ok +ironic.tests.unit.drivers.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_volume_target.TestVolumeTargetObject.test_list +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list ... 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.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.ISCSIDeployTestCase.test_get_clean_steps +ironic.tests.unit.drivers.modules.test_iscsi_deploy.ISCSIDeployTestCase.test_get_clean_steps ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_updates +ironic.tests.unit.objects.test_objects.TestObject.test_get_updates ... ok +ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat +ironic.tests.unit.drivers.test_base.TestDeployInterface.test_warning_on_heartbeat ... 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_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_check_image_size +ironic.tests.unit.drivers.modules.test_iscsi_deploy.IscsiDeployMethodsTestCase.test_check_image_size ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns +ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_updates +ironic.tests.unit.objects.test_objects.TestObject.test_updates ... ok -GOT:Response: 200 OK +GET: /v1/volume/targets/95f9788e-4c87-40bd-bd8d-d80c24924587 {} +GOT:{'uuid': '95f9788e-4c87-40bd-bd8d-d80c24924587', '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/95f9788e-4c87-40bd-bd8d-d80c24924587', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/95f9788e-4c87-40bd-bd8d-d80c24924587', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:15.858367+00:00', 'updated_at': None} +GET: /volume/targets/95f9788e-4c87-40bd-bd8d-d80c24924587 {} +GOT:{'uuid': '95f9788e-4c87-40bd-bd8d-d80c24924587', '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/95f9788e-4c87-40bd-bd8d-d80c24924587', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/95f9788e-4c87-40bd-bd8d-d80c24924587', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:15.858367+00:00', 'updated_at': None} +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-ffe1cee2-73a5-445c-b8a6-8d5c1f9e1f27 +Openstack-Request-Id: req-229a6a8a-125d-4eb6-9995-5c970ac6d681 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": "2020-08-18T08:12:38.337979+00:00", "updated_at": "2020-08-18T08:12:38.349534+00:00"} -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 +{"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': '/extra/foo', 'value': 'bar', 'op': 'add'}] +GOT:Response: 404 Not Found Content-Type: application/json -Location: http://localhost/v1/volume/targets/ee9dc0c1-5a7f-4fce-ab5d-c78302af244c -Openstack-Request-Id: req-5c165f8b-853b-4717-88d9-356b5a747917 -X-Openstack-Ironic-Api-Maximum-Version: 1.46 -X-Openstack-Ironic-Api-Minimum-Version: 1.1 -X-Openstack-Ironic-Api-Version: 1.46 -{"uuid": "ee9dc0c1-5a7f-4fce-ab5d-c78302af244c", "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/ee9dc0c1-5a7f-4fce-ab5d-c78302af244c", "rel": "self"}, {"href": "http://localhost/volume/targets/ee9dc0c1-5a7f-4fce-ab5d-c78302af244c", "rel": "bookmark"}], "created_at": "2020-08-18T08:12:38.950159+00:00", "updated_at": null} -GET: /v1/volume/targets/ee9dc0c1-5a7f-4fce-ab5d-c78302af244c {} -GOT:{'uuid': 'ee9dc0c1-5a7f-4fce-ab5d-c78302af244c', '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/ee9dc0c1-5a7f-4fce-ab5d-c78302af244c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ee9dc0c1-5a7f-4fce-ab5d-c78302af244c', 'rel': 'bookmark'}], 'created_at': '2020-08-18T08:12:38.950159+00:00', 'updated_at': None} +{"error_message": "404 Not Found\n\nThe resource could not be found.\n\n "} +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: / {} -GOT:Response: 500 Internal Server Error +GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-6fca5d41-6e2c-4494-aab4-b0dfbbff03ed -{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} +Openstack-Request-Id: req-20f4aed4-65d7-4f3f-bfc6-22fe5d047923 +{"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"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: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-35df6747-0649-45b2-bc18-2a42ca9e89b8 +{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +func1() migrated 10 of 15 objects. Running batches of 50 until migrations have been completed. Data migrations have completed. Running batches of 50 until migrations have been completed. -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_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_as_dict_with_nested_object_list -ironic.tests.unit.objects.test_objects.TestObject.test_as_dict_with_nested_object_list ... ok -ironic.tests.unit.drivers.modules.test_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.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_old -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old ... 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_refresh_object -ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ... 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_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_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_pxe.PXEBootTestCase.test_validate_good -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_missing ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ... ok -ironic.tests.unit.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.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 +Data migrations have completed. +Malformed option m1key1=value1 +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.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_power.XClarityPowerDriverTestCase.test_reboot +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ... 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.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.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.objects.test_port.TestPortObject.test_get_by_id +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_id ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_console ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_inspect ... ok +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.ucs.test_power.UcsPowerTestCase.test_reboot +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.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.objects.test_port.TestPortObject.test_save_after_refresh +ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ... 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_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.objects.test_port.TestPortObject.test_supports_physical_network_supported ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported ... ok -ironic.tests.unit.drivers.modules.test_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.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_not_dict ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ... ok +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info +ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references +ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ... 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_trait.TestTraitObject.test_get_trait_names -ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ... ok +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl +ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl ... ok +ironic.tests.unit.drivers.modules.test_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.objects.test_trait.TestTraitObject.test_create +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create ... 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.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.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_get_by_uuid -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_get_by_uuid ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ... 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_target.TestVolumeTargetObject.test_create +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ... ok +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid +ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ... ok +ironic.tests.unit.drivers.modules.test_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.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ... 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 -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ... 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.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_volume_target.TestVolumeTargetObject.test_payload_schemas +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_payload_schemas ... 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.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ... 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.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_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.ucs.test_power.UcsPowerTestCase.test_validate_fail +ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_validate_fail ... ok +ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute +ironic.tests.unit.test_base.DontBlockExecuteTestCase.test_no_exception_raised_for_execute ... ok +ironic.tests.unit.drivers.modules.test_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.test_fake_hardware.FakeHardwareTestCase.test_power_interface +ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... ok +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ... ok -POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-2ee884e6-6200-4bef-89b6-36b195a15c7f +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}"} +DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 +GOT:Response: 204 No Content +Openstack-Request-Id: req-63dfc259-0a35-4f1c-b4a3-731d92d87d77 +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 {} +GOT:{'targets': [{'uuid': 'f0fe5d7f-249c-45ad-bef3-ba9da8835f8d', 'volume_type': 'iscsi', 'boot_index': 0, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/f0fe5d7f-249c-45ad-bef3-ba9da8835f8d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f0fe5d7f-249c-45ad-bef3-ba9da8835f8d', 'rel': 'bookmark'}]}, {'uuid': 'eb5b920a-b9c2-46f9-9941-9002d07dbbe9', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/eb5b920a-b9c2-46f9-9941-9002d07dbbe9', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/eb5b920a-b9c2-46f9-9941-9002d07dbbe9', 'rel': 'bookmark'}]}, {'uuid': '02e66a61-0f41-457e-b381-39f48295742d', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': '12345678', 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'links': [{'href': 'http://localhost/v1/volume/targets/02e66a61-0f41-457e-b381-39f48295742d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/02e66a61-0f41-457e-b381-39f48295742d', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&limit=3&marker=02e66a61-0f41-457e-b381-39f48295742d'} +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-09-20T14:58:18.140527+00:00', 'updated_at': None}]} +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-09-20T14:58:20.421530+00:00', 'updated_at': None}]} +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 "} +GET: /v1/volume/targets?fields=uuid,extra {} +GOT:{'targets': [{'uuid': '87c22834-7caf-4d93-83f5-946e63c26517', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/87c22834-7caf-4d93-83f5-946e63c26517', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/87c22834-7caf-4d93-83f5-946e63c26517', 'rel': 'bookmark'}]}, {'uuid': '5f5ff2eb-f11f-48c0-8fac-930258e15319', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/5f5ff2eb-f11f-48c0-8fac-930258e15319', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5f5ff2eb-f11f-48c0-8fac-930258e15319', 'rel': 'bookmark'}]}, {'uuid': '2c45a21f-43ce-462c-8f5b-3124ce851c3d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/2c45a21f-43ce-462c-8f5b-3124ce851c3d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/2c45a21f-43ce-462c-8f5b-3124ce851c3d', 'rel': 'bookmark'}]}]} +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-0a8a3cb8-8d0e-4052-8b62-4be163474aa7 +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-09-20T14:58:26.451016+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': {'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-a937843c-c935-4c39-b177-2f34ca48acbf +Openstack-Request-Id: req-312aea1b-010c-45fb-87b2-2fb30aac8c96 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": "2020-08-18T08:12:47.880541+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": {"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-09-20T14:58:29.048719+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': '2020-08-18T08:12:47.880541+00:00', 'updated_at': None} -GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} -GOT:Response: 401 Unauthorized +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-09-20T14:58:29.048719+00:00', 'updated_at': None} +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 -Www-Authenticate: Keystone uri="https://127.0.0.1:35357" -{"error": {"code": 401, "title": "Unauthorized", "message": "The request you have made requires authentication."}} +Openstack-Request-Id: req-1d14f57d-8b11-49f8-80ad-1394c299c14a +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}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-04e9a51b-d767-4915-a0ae-7fe5ea7bf197 +Openstack-Request-Id: req-423482b0-e628-4c5e-bc47-76323fd8b985 {"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-b9e4ecd4-15d5-4d97-a579-69376f7a8869 +{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Remote error: TestException Test exception message.\\n['\",\"debuginfo\":null}"} +foo() migrated 15 of 15 objects. func1() migrated 10 of 10 objects. -Malformed option m1key1=value1 -Data migrations have not completed. Please re-run. -Running batches of 50 until migrations have been completed. -Data migrations have completed. -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine -ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_err_engine ... ok -ironic.tests.unit.drivers.modules.test_snmp.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_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_off ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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_snmp_objects -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects ... ok -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state ... ok -ironic.tests.unit.drivers.modules.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.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__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.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_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_no_settings -ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_no_settings ... 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_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_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_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_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.TestAgentMethods.test_check_image_size_raw_stream_disabled -ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled ... ok -ironic.tests.unit.drivers.modules.test_agent_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_running -ironic.tests.unit.drivers.modules.test_agent_base_vendor.AgentDeployMixinTest.test_continue_cleaning_running ... 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.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.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_timeout ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_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_state_snmp_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_snmp_failure ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_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_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_snmp.SNMPDriverTestCase.test_get_power_state_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_error ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ... 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_snmp.SNMPDriverTestCase.test_reboot_snmp_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure ... ok -ironic.tests.unit.drivers.modules.test_agent_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_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_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure ... ok -ironic.tests.unit.drivers.modules.test_agent_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_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_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.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property -ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_emtpy_property ... ok -ironic.tests.unit.drivers.modules.test_snmp.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_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.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_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_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.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ... ok -ironic.tests.unit.drivers.modules.test_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.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.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.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.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.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_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.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_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.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.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.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_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.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.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_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.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_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.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.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.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_missing_description -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_missing_description ... 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_base.TestManagementInterface.test_get_supported_boot_modes_default_impl -ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_supported_boot_modes_default_impl ... ok -ironic.tests.unit.drivers.modules.test_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.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_drac.IDRACHardwareTestCase.test_override_with_agent -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_agent ... 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.test_drac.IDRACHardwareTestCase.test_override_with_raid -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_raid ... ok -ironic.tests.unit.drivers.modules.test_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.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.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ... ok -ironic.tests.unit.drivers.modules.test_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.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface -ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ... ok -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_clean_up_another_fs ... ok -ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_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.TestFetchCleanup.test__fetch -ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... 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_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.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_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_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_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.test_generic.ManualManagementHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces ... 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.test_generic.ManualManagementHardwareTestCase.test_get_properties_none -ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ... ok -ironic.tests.unit.drivers.modules.test_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_single_bridge_no_ipmitool -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool ... ok -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_default_interfaces ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold ... 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_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_irmc.IRMCHardwareTestCase.test_override_with_inspector -ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ... ok +Malformed option m1.key1value1 +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.drivers.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_rescue +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__build_pxe_config_options_ipxe_rescue ... 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.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail ... ok -ironic.tests.unit.drivers.modules.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.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ... ok -ironic.tests.unit.drivers.modules.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_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__power_status_off -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off ... 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_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_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__cache_ramdisk_kernel ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string ... ok +ironic.tests.unit.drivers.test_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_deploy_image_info +ironic.tests.unit.drivers.modules.test_pxe.PXEPrivateMethodsTestCase.test__get_deploy_image_info ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_with_incorrect_format_fail ... ok +ironic.tests.unit.drivers.modules.test_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.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_get_properties ... ok +ironic.tests.unit.drivers.test_utils.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_noop.NoInterfacesTestCase.test_load_by_name +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_load_by_name ... ok +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor +ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor ... 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.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_utils.UtilsTestCase.test_add_node_capability +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_force_persistent_boot_true ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none ... 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_chassis.TestChassisObject.test_get_by_id +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id ... 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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_boot_device_fail ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ... 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_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.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail ... 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_list +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ... ok +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ... 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.objects.test_bios.TestBIOSSettingObject.test_list_delete +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ... 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.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.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_chassis.TestChassisObject.test_create ironic.tests.unit.objects.test_chassis.TestChassisObject.test_create ... ok -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_id ... ok -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group ... 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_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail -ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ... 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.objects.test_fields.TestMacAddressField.test_coerce +ironic.tests.unit.objects.test_fields.TestMacAddressField.test_coerce ... ok +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save +ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save ... 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.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_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi +ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_uefi ... ok +ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables +ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ... ok +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function_invalid_type ... ok +ironic.tests.unit.drivers.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.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_snmp.SNMPClientTestCase.test_get_next_err_transport +ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next_err_transport ... 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_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.TestConvertToVersion.test_conductor_group_unsupported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_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.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__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_refresh -ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... 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.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_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function +ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_default_as_function ... ok +ironic.tests.unit.drivers.modules.test_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.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_node.TestNodeObject.test_create_with_traits +ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_state_off ... 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.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_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_snmp_objects ... ok +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_set_power_state_payload ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_create +ironic.tests.unit.objects.test_node.TestNodeObject.test_create ... 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_event_type_make_status_invalid -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_make_status_invalid ... ok -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes -ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 -ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions -ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned_2versions ... ok +ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces +ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_override_with_ipmi_interfaces ... ok +ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh +ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... ok +ironic.tests.unit.drivers.modules.test_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.objects.test_objects.TestMisc.test_max_version_two +ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two ... ok +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad +ironic.tests.unit.objects.test_objects.TestObject.test__from_db_object_map_version_bad ... 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_snmp.SNMPDeviceDriverTestCase.test_auto_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_off ... 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_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_get_target_version_pinned_no_myobj ironic.tests.unit.objects.test_objects.TestObject.test_get_target_version_pinned_no_myobj ... ok -ironic.tests.unit.drivers.modules.test_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.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_objects.TestObject.test_supports_version -ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_state_on ... ok +ironic.tests.unit.objects.test_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_load +ironic.tests.unit.objects.test_objects.TestObject.test_load ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old ... ok +ironic.tests.unit.drivers.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_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_objects.TestObject.test_loaded_in_primitive +ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... 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.objects.test_objects.TestObject.test_hydration +ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports ... ok +ironic.tests.unit.drivers.modules.test_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_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_pinned_api -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_conductor ... ok +ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check +ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_api ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_invalid_pin ... 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.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.TestConvertToVersion.test_vif_in_extra_lower_version -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra_lower_version ... ok -ironic.tests.unit.drivers.modules.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.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_save -ironic.tests.unit.objects.test_port.TestPortObject.test_save ... 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.objects.test_port.TestPortObject.test_supports_physical_network_unsupported -ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_unsupported ... ok +ironic.tests.unit.drivers.modules.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.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.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.objects.test_port.TestConvertToVersion.test_physnet_supported_set +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ... ok +ironic.tests.unit.drivers.modules.test_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.test_generic.ManualManagementHardwareTestCase.test_get_properties +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties ... 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_objects.TestRegistry.test_hook_keeps_newer_properly +ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address +ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ... 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.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_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.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.objects.test_portgroup.TestPortgroupObject.test_get_by_name +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_name ... 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_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.objects.test_portgroup.TestPortgroupObject.test_list ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list ... 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_trait.TestTraitObject.test_get_by_id -ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id ... ok -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id ... ok -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... 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_volume_target.TestVolumeTargetObject.test_save -ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ... ok -func1() migrated 0 of 0 objects. -func2() migrated 0 of 0 objects. -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_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_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_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_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_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.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_noop.NoInterfacesTestCase.test_vendor -ironic.tests.unit.drivers.modules.test_noop.NoInterfacesTestCase.test_vendor ... ok -ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods -ironic.tests.unit.drivers.modules.test_noop_mgmt.TestNoopManagement.test_dummy_methods ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_default_boot_mode_on_ironic_uefi ... ok -ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_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_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.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_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_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_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_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_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_invalid_outlet -ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet ... 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.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_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_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.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_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__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.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.TestPortgroupObject.test_list_by_node_id +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_list_by_node_id ... ok ironic.tests.unit.drivers.modules.test_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.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.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.ucs.test_helper.UcsValidateParametersTestCase.test_logout -ironic.tests.unit.drivers.modules.ucs.test_helper.UcsValidateParametersTestCase.test_logout ... 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.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_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_masterswitch_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_masterswitch_power_state_off ... 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.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_on ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_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_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_baytech_mrp27_power_state_off -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_state_off ... ok -ironic.tests.unit.drivers.modules.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_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.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_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_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.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_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices -ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.modules.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.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot_timeout ... ok -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate -ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ... ok -ironic.tests.unit.drivers.test_base.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.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ... 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_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_cisco.CiscoUCSStandaloneHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_cisco.CiscoUCSStandaloneHardwareTestCase.test_default_interfaces ... 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_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_payload_schemas +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_payload_schemas ... ok +ironic.tests.unit.objects.test_port.TestPortObject.test_save +ironic.tests.unit.objects.test_port.TestPortObject.test_save ... ok +ironic.tests.unit.drivers.modules.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.objects.test_trait.TestTraitObject.test_get_trait_names +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_trait_names ... 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.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_none +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ... 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_power_reset_on_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_delay ... 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.SNMPDeviceDriverTestCase.test_apc_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_power_on ... ok + +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-09-20T14:58:42.644161+00:00', 'updated_at': None} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-df39f112-edd0-4119-8b08-b07893d6f7f6 +{"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-35fc1d7a-0bea-4872-874d-81f23d982d2e +{"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'}]} +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.test_ilo.IloHardwareTestCase.test_override_with_no_bios +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_apc_rackpdu_power_reset ... 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_snmp.SNMPDeviceDriverTestCase.test_aten_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_power_off ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot +ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ... 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.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_aten_snmp_objects ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list +ironic.tests.unit.objects.test_trait.TestTraitObject.test_create_list ... 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_auto_power_on +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_auto_power_on ... 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.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.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_baytech_mrp27_power_snmp_objects ... ok +ironic.tests.unit.drivers.modules.test_snmp.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.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ... 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.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default_version_and_missing_community ... ok +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save ... 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.SNMPDeviceDriverTestCase.test_eaton_power_power_off +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_power_off ... ok +ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute +ironic.tests.unit.test_base.BlockExecuteTestCase.test_can_mock_execute ... ok +ironic.tests.unit.drivers.modules.test_snmp.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.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_ipmitool_power ... ok + +POST: /v1/volume/targets {'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} +GOT:Response: 201 Created +Content-Type: application/json +Location: http://localhost/v1/volume/targets/874f1283-8007-41a7-98b1-805ca9d69c54 +Openstack-Request-Id: req-ad2f89b6-f1bc-44be-a37f-b920a1eb4c03 +X-Openstack-Ironic-Api-Maximum-Version: 1.46 +X-Openstack-Ironic-Api-Minimum-Version: 1.1 +X-Openstack-Ironic-Api-Version: 1.46 +{"uuid": "874f1283-8007-41a7-98b1-805ca9d69c54", "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/874f1283-8007-41a7-98b1-805ca9d69c54", "rel": "self"}, {"href": "http://localhost/volume/targets/874f1283-8007-41a7-98b1-805ca9d69c54", "rel": "bookmark"}], "created_at": "2021-09-20T14:58:45.607412+00:00", "updated_at": null} +GET: /v1/volume/targets/874f1283-8007-41a7-98b1-805ca9d69c54 {} +GOT:{'uuid': '874f1283-8007-41a7-98b1-805ca9d69c54', '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/874f1283-8007-41a7-98b1-805ca9d69c54', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/874f1283-8007-41a7-98b1-805ca9d69c54', 'rel': 'bookmark'}], 'created_at': '2021-09-20T14:58:45.607412+00:00', 'updated_at': None} +GET: / {} +GOT:Response: 500 Internal Server Error +Content-Type: application/json +Openstack-Request-Id: req-393a6dd7-deb0-410b-a3e5-1607cbbade16 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"debuginfo\": null}"} +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.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods +ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods ... ok +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ... 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_list_create +ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create ... 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_conductor.TestConductorObject.test_unregister +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ... 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.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_bios_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_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_conductor_group_unsupported_set_no_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_unsupported_set_no_remove ... ok +ironic.tests.unit.drivers.modules.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.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_set_remove ... ok +ironic.tests.unit.objects.test_node.TestConvertToVersion.test_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_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_get_by_id +ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_id ... 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_update_with_invalid_properties +ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties ... 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.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_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_changed_3 +ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get +ironic.tests.unit.objects.test_objects.TestObject.test_get ... ok +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device +ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_set_boot_device ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes +ironic.tests.unit.objects.test_objects.TestObject.test_get_changes ... 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.objects.test_objects.TestObject.test_obj_constructor +ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... 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.objects.test_objects.TestObject.test_refresh_object +ironic.tests.unit.objects.test_objects.TestObject.test_refresh_object ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_static_result +ironic.tests.unit.objects.test_objects.TestObject.test_static_result ... ok +ironic.tests.unit.drivers.test_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.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_same_revision_does_not_backport ... ok +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor +ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_conductor ... ok +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra +ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ... ok -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector -ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ... ok -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox -ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ... 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_redfish.RedfishHardwareTestCase.test_default_interfaces -ironic.tests.unit.drivers.test_redfish.RedfishHardwareTestCase.test_default_interfaces ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ... ok +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh +ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save_after_refresh ... ok +ironic.tests.unit.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 +"max-count" must be a positive 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_by_volume_id +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ... ok + +PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_id', 'value': '1', 'op': 'add'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-ddc446a9-7b6b-4070-9847-1bca77e7b128 +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': '/boot_index', 'op': 'remove'}] +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-c03eacbe-4954-4ea4-b394-08e7e63c77f0 +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}"} +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: /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'}]} +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.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_default_interfaces ... 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.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.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local ... ok -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift -ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_add_node_capability_append ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_not_string ... ok -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_capabilities_to_dict_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_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_returns_none -ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability_returns_none ... 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_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_chassis.TestChassisObject.test_save -ironic.tests.unit.objects.test_chassis.TestChassisObject.test_save ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ... ok -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_command_fail ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift ... 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_ensure_next_boot_device_clears_is_next_boot_persistent +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device_clears_is_next_boot_persistent ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_get_node_capability ... ok +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group ... ok +ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value +ironic.tests.unit.objects.test_fields.TestNotificationStatusField.test_coerce_bad_value ... 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.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_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_traits_supported_missing -ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing ... 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_node.TestNodeObject.test_payload_schemas -ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ... 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_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_convert_to_version_new -ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ... 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_reserve_node_not_found +ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve_node_not_found ... 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.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_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_do_version_changes_for_db_pinned -ironic.tests.unit.objects.test_objects.TestObject.test_do_version_changes_for_db_pinned ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_get_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_loaded_in_primitive -ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error -ironic.tests.unit.objects.test_objects.TestObject.test_object_property_type_error ... ok -ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object -ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... ok +ironic.tests.unit.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_supports_version +ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... ok ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ironic.tests.unit.objects.test_objects.TestObject.test_unknown_objtype ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_revision_does_not_backport_zero ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_pin_ignored ... ok -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ... ok -ironic.tests.unit.objects.test_port.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_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_portgroup.TestPortgroupObject.test_get_by_id -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_id ... ok -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid -ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_uuid ... 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_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.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_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_payload_schemas +ironic.tests.unit.objects.test_port.TestPortObject.test_payload_schemas ... 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.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.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset +ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset ... 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_list +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list ... 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.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_by_node_id ... 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_connector.TestVolumeConnectorObject.test_list_none +ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_list_none ... 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_invalid_driver +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver ... ok -GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} -GOT:Response: 404 Not Found +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 -{"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', 'value': '1', 'op': 'replace'}] +Openstack-Request-Id: req-17115f84-2037-4571-9d10-8844136e94ab +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}"} +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-d30088ba-ad34-4667-869d-f2030a8b989b +Openstack-Request-Id: req-58b2ed4d-13b9-4213-9f86-b028097ad000 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/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} +POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json -Openstack-Request-Id: req-dd383bfa-d8d1-4b99-81a6-e50e817da3d9 +Openstack-Request-Id: req-0e33b16a-2a7c-48c0-9a7d-fb4cdc3cca0a 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}"} +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid input for field/attribute boot_index. 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': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-460d1320-fb88-4c0b-999e-71b0f005295a +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:{'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} +GOT:Response: 403 Forbidden +Content-Type: application/json +Openstack-Request-Id: req-8778b5c8-0358-4f79-a094-8b2abeb01ce6 +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}"} +GET: /v1/ {} +GOT:Response: 200 OK +Content-Type: application/json +Openstack-Request-Id: req-41689a45-fc8e-4ff1-9aad-6eeac99523d5 +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-fbd92609-1e5c-4aa7-a695-49ee25c5e8c7 +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 "} +GET: / {} +GOT:Response: 400 Bad Request +Content-Type: application/json +Openstack-Request-Id: req-c714e528-d359-4589-9712-22cb11734586 +{"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Test exception message.\\nTraceback (most recent call last):\\n File \\\"/opt/stack/ironic/ironic/common/rpc/amqp.py\\\", line 434, in _process_data\\\\n **args)\\n File \\\"/opt/stack/ironic/ironic/common/rpc/dispatcher.py\\\", line 172, in dispatch\\\\n result = getattr(proxyobj, method)(ctxt, **kwargs)\", \"debuginfo\": null}"} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-00bc51a3-5a2c-4286-88ce-d727b2ccc6f7 -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} +Openstack-Request-Id: req-de28f56e-22e0-429b-9dbd-2e8339f6f745 +{"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:Response: 500 Internal Server Error Content-Type: application/json -Openstack-Request-Id: req-4d8ea2cd-0d16-4473-bec4-8ebfb5ffcb4d -{"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} -func1() migrated 15 of 15 objects. -func2() migrated 20 of 20 objects. -func1() migrated 10 of 10 objects. -func2() migrated 0 of 0 objects. -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ... ok -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_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_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_state_error -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_state_error ... 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_snmp_failure -ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure ... 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.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_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_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_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_reboot_fail -ironic.tests.unit.drivers.modules.ucs.test_power.UcsPowerTestCase.test_reboot_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.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_not_dict ... ok -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority -ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ... ok -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata -ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_shared_task_metadata ... ok -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties -ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ... ok +Openstack-Request-Id: req-d51b059a-0d2f-4b92-b2c7-2e9f069f63a0 +{"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Error message without traceback \\n but \\n multiline\", \"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.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_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_read_write_community +ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_read_write_community ... 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.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_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_timeout +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power_timeout ... ok +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate +ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ... ok +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo +ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo ... 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_drac.IDRACHardwareTestCase.test_override_with_inspector -ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_inspector ... 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_validate_valid_methods -ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_valid_methods ... 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_bios.TestBIOSSettingObject.test_delete -ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ... 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.test_base.TestBIOSInterface.test_factory_reset_wrapper +ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ... 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_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces +ironic.tests.unit.drivers.test_cisco.CiscoUCSManagedHardwareTestCase.test_default_interfaces ... 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_generic.ManualManagementHardwareTestCase.test_get_properties_none +ironic.tests.unit.drivers.test_generic.ManualManagementHardwareTestCase.test_get_properties_none ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_agent_rescue ... ok +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector +ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_agent_rescue ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_bios_configuration ... ok +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector +ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ... 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.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_unkown +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_local ... ok +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift +ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ... ok +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device +ironic.tests.unit.drivers.test_utils.UtilsTestCase.test_ensure_next_boot_device ... 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_load +ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load ... 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_with_update -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true ... ok -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group -ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group ... ok -ironic.tests.unit.objects.test_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_function -ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_function ... 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_fields.TestFlexibleDictField.test_coerce_bad_values +ironic.tests.unit.objects.test_fields.TestFlexibleDictField.test_coerce_bad_values ... 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__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_fault_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_fault_unsupported_missing ... 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_as_dict_insecure ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_insecure ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure ... ok -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits -ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_with_traits ... 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_release -ironic.tests.unit.objects.test_node.TestNodeObject.test_release ... 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_notification.TestNotificationBase.test_emit_notification -ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ... 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_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_corrected_power_state_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_corrected_power_state_payload ... ok +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload ... ok +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits +ironic.tests.unit.objects.test_node.TestNodePayloads.test_node_payload_no_traits ... ok +ironic.tests.unit.objects.test_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_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_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.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_updates -ironic.tests.unit.objects.test_objects.TestObject.test_updates ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_deserialize_entity_newer_version_backports ... ok -ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_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_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_remove -ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_set_remove ... 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_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info -ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_in_internal_info ... ok -ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one -ironic.tests.unit.objects.test_portgroup.TestMigrateVifPortId.test_migrate_vif_port_id_one ... 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_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_changes_in_primitive +ironic.tests.unit.objects.test_objects.TestObject.test_changes_in_primitive ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_contains +ironic.tests.unit.objects.test_objects.TestObject.test_contains ... ok +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same +ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same ... 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.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.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_trait.TestTraitObject.test_destroy ironic.tests.unit.objects.test_trait.TestTraitObject.test_destroy ... 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_refresh -ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_refresh ... 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 -/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_exception_raised_for_execute -ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute ... ok +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id +ironic.tests.unit.objects.test_trait.TestTraitObject.test_get_by_id ... ok +ironic.tests.unit.objects.test_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_volume_target.TestVolumeTargetObject.test_get_by_uuid +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_get_by_uuid ... ok +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id +ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_node_id ... 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.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked +ironic.tests.unit.test_base.BlockExecuteTestCase.test_exception_raised_for_execute_parent_mocked ... ok -foo() migrated 15 of 15 objects. -func1() migrated 10 of 15 objects. +func1() migrated 15 of 15 objects. +func2() migrated 20 of 20 objects. +func1() migrated 10 of 10 objects. +func1() migrated 0 of 0 objects. +func2() migrated 0 of 0 objects. ---------------------------------------------------------------------- -Ran 4919 tests in 242.939s +Ran 4919 tests in 1300.399s OK (skipped=12) + python3-stestr slowest -Test id Runtime (s) ----------------------------------------------------------------------------------------------------------- ----------- -ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync 34.484 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions 32.114 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version 32.047 -ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema 31.771 -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state 23.883 -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached 20.670 -ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state_not_reached 13.039 -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on_timeout 9.107 -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_off_invalid_state 9.093 -ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_on_invalid_state 9.085 +Test id Runtime (s) +--------------------------------------------------------------------------------------------------------- ----------- +ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_interface_in_allowed_state 66.119 +ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states 61.137 +ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync 58.459 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_create_schema 56.256 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_walk_versions 52.621 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_create_schema_and_version 51.987 +ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version 30.848 +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state 26.467 +ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached 24.412 +ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces 23.994 + 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 \ @@ -21298,9 +21339,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.iUGNS4:[keystone_authtoken]/www_authenticate_uri -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.iUGNS4:[keystone_authtoken]/auth_type -pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.iUGNS4:[keystone_authtoken]/region_name +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.CKIljD:[keystone_authtoken]/www_authenticate_uri +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.CKIljD:[keystone_authtoken]/auth_type +pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.CKIljD:[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 @@ -21611,7 +21652,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/tmpso8xmoqj.rst' +dumping output to '/tmp/tmpin_7mh9u.rst' reading sources... [ 12%] configuration/index reading sources... [ 12%] configuration/policy reading sources... [ 12%] configuration/sample-config @@ -22371,10 +22412,10 @@ 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/toggle.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/bootstrap.min.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/toggle.js dh_sphinxdoc: ignoring unknown JavaScript code: debian/ironic-doc/usr/share/doc/ironic-doc/html/_static/js/docs.js make[1]: Leaving directory '/build/ironic-11.1.0' debian/rules override_dh_installchangelogs @@ -22401,15 +22442,17 @@ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done -+ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in -+ echo debian/ironic-api.init.in -+ sed s/.init.in// +++ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in ++ for i in `ls -1 debian/*.init.in` +++ sed s/.init.in// +++ echo debian/ironic-api.init.in + MYINIT=debian/ironic-api + cp debian/ironic-api.init.in debian/ironic-api.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-api.init.in -+ echo debian/ironic-conductor.init.in -+ sed s/.init.in// ++ for i in `ls -1 debian/*.init.in` +++ sed s/.init.in// +++ echo debian/ironic-conductor.init.in + MYINIT=debian/ironic-conductor + cp debian/ironic-conductor.init.in debian/ironic-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template @@ -22419,7 +22462,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 \ @@ -22428,16 +22471,18 @@ pkgos-gen-systemd-unit $i ; \ fi \ done -+ ls debian/ironic-api.init.in debian/ironic-conductor.init.in -+ echo debian/ironic-api.init.in -+ sed s/.init.in/.service.in/ +++ ls debian/ironic-api.init.in debian/ironic-conductor.init.in ++ for i in `ls debian/*.init.in` +++ sed s/.init.in/.service.in/ +++ echo debian/ironic-api.init.in + MYINIT=debian/ironic-api.service.in -+ [ -e debian/ironic-api.service.in ] ++ '[' -e debian/ironic-api.service.in ']' + pkgos-gen-systemd-unit debian/ironic-api.init.in -+ + echosed debian/ironic-conductor.init.in s/.init.in/.service.in/ - ++ for i in `ls debian/*.init.in` +++ sed s/.init.in/.service.in/ +++ echo debian/ironic-conductor.init.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' @@ -22465,15 +22510,17 @@ cat /usr/share/openstack-pkg-tools/init-script-template >>$MYINIT.init ; \ pkgos-gen-systemd-unit $i ; \ done -+ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in -+ echo debian/ironic-api.init.in -+ sed s/.init.in// +++ ls -1 debian/ironic-api.init.in debian/ironic-conductor.init.in ++ for i in `ls -1 debian/*.init.in` +++ sed s/.init.in// +++ echo debian/ironic-api.init.in + MYINIT=debian/ironic-api + cp debian/ironic-api.init.in debian/ironic-api.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-api.init.in -+ sed s/.init.in// -+ echo debian/ironic-conductor.init.in ++ for i in `ls -1 debian/*.init.in` +++ sed s/.init.in// +++ echo debian/ironic-conductor.init.in + MYINIT=debian/ironic-conductor + cp debian/ironic-conductor.init.in debian/ironic-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template @@ -22483,7 +22530,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 \ @@ -22492,16 +22539,18 @@ pkgos-gen-systemd-unit $i ; \ fi \ done -+ ls debian/ironic-api.init.in debian/ironic-conductor.init.in -+ echo debian/ironic-api.init.in -+ sed s/.init.in/.service.in/ +++ ls debian/ironic-api.init.in debian/ironic-conductor.init.in ++ for i in `ls debian/*.init.in` +++ sed s/.init.in/.service.in/ +++ echo debian/ironic-api.init.in + MYINIT=debian/ironic-api.service.in -+ [ -e debian/ironic-api.service.in ] ++ '[' -e debian/ironic-api.service.in ']' + pkgos-gen-systemd-unit debian/ironic-api.init.in -+ echo debian/ironic-conductor.init.in -+ sed s/.init.in/.service.in/ ++ for i in `ls debian/*.init.in` +++ echo debian/ironic-conductor.init.in +++ sed s/.init.in/.service.in/ + MYINIT=debian/ironic-conductor.service.in -+ [ -e debian/ironic-conductor.service.in ] ++ '[' -e debian/ironic-conductor.service.in ']' + pkgos-gen-systemd-unit debian/ironic-conductor.init.in dh_installinit --error-handler=true make[1]: Leaving directory '/build/ironic-11.1.0' @@ -22526,17 +22575,17 @@ fi dpkg-gencontrol: warning: Depends field of package ironic-conductor: substitution variable ${python3:Depends} used, but is not defined dpkg-gencontrol: warning: Depends field of package ironic-api: substitution variable ${python3:Depends} used, but is not defined -dpkg-gencontrol: warning: package python3-ironic: substitution variable ${ostack-lsb-base} unused, but is defined dpkg-gencontrol: warning: package ironic-doc: substitution variable ${ostack-lsb-base} unused, but is defined dpkg-gencontrol: warning: package ironic-doc: substitution variable ${sphinxdoc:Built-Using} unused, but is defined +dpkg-gencontrol: warning: package python3-ironic: substitution variable ${ostack-lsb-base} unused, but is defined 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-doc' in '../ironic-doc_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-deb: building package 'ironic-doc' in '../ironic-doc_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-genbuildinfo --build=binary dpkg-genchanges --build=binary >../ironic_11.1.0-6_arm64.changes dpkg-genchanges: info: binary-only upload (no source code included) @@ -22544,12 +22593,14 @@ dpkg-source: info: using options from ironic-11.1.0/debian/source/options: --extend-diff-ignore=^[.]gitreview$ dpkg-buildpackage: info: binary-only upload (no source included) I: copying local configuration +I: user script /srv/workspace/pbuilder/2638/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2638/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/7656 and its subdirectories -I: Current time: Mon Aug 17 20:19:11 -12 2020 -I: pbuilder-time-stamp: 1597738751 +I: removing directory /srv/workspace/pbuilder/2638 and its subdirectories +I: Current time: Tue Sep 21 05:18:32 +14 2021 +I: pbuilder-time-stamp: 1632151112